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
- 17 participants
- 40169 discussions
Re: [libvirt] [PATCH 0/7] i386: Add `machine` parameter to query-cpu-definitions
by Eduardo Habkost 25 Oct '19
by Eduardo Habkost 25 Oct '19
25 Oct '19
CCing danpb, libvir-list, mskrivanek.
On Fri, Oct 25, 2019 at 09:17:46AM +0200, David Hildenbrand wrote:
> On 25.10.19 04:25, Eduardo Habkost wrote:
> > We had introduced versioned CPU models in QEMU 4.1, including a
> > method for querying for CPU model versions using
>
> Interesting, I was not aware of that.
>
> On s390x, we somewhat have versioned CPU models, but we decided against
> giving them explicit names (e.g., z13-v1 or z13-4.1.0), because it didn't
> really seem to be necessary. (and we often implement/add features for older
> CPU models, there is a lot of fluctuation) Actually, you would have had to
> add "z13-z/VM-x.x.x" or "z13-LPAR-x.x.x" or "z13-KVM-x.x.x" to model the
> features you actually see in all the different virtual environments ("what a
> CPU looks like"). Not to talk about QEMU versions in addition to that. So we
> decided to always model what you would see under LPAR and are able to
> specify for a KVM guest. So you can use "z13" in an up-to-date LPAR
> environment, but not in a z/VM environment (you would have to disable
> features).
>
> Each (!base) CPU model has a specific feature set per machine. Libvirt uses
> query-cpu-model-expansion() to convert this model+machine to a
> machine-independent representation. That representation is sufficient for
> all use cases we were aware of (esp. "virsh domcapabilities", the host CPU
> model, migration).
>
> While s390x has versioned CPU models, we have no explicit way of specifying
> them for older machines, besides going over query-cpu-model-expansion and
> using expanded "base model + features".
>
> I can see that this might make sense on x86-64, where you only have maybe 3
> versions of a CPU (e.g., the one Intel messed up first - Haswell, the one
> Intel messed up next - Haswell-noTSX, and the one that Intel eventually did
> right - Haswell-noTSX-IBRS) and you might want to specify "Haswell" vs.
> "Haswell-IBRS" vs. "Haswell-noTSX-IBRS". But actually, you will always want
> to go for "Haswell-noTSX-IBRS", because you can expect to run in updated
> environments if I am not wrong, everything else are corner cases.
>
> Of course, versioned CPU model are neat to avoid "base model + list of
> features", but at least for expanding the host model on s390x, it is not
> really helpful. When migrating, the model expansion does the trick.
>
> I haven't looked into details of "how to specify or model versions". Maybe
> IBM wants to look into creating versions for all the old models we had. But
> again, not sure if that is of any help for s390x. CCing IBM.
I'm not sure yet if there are the x86-specific goals and
constraints that would make it difficult to follow the same
approach followed by s390x. I have the impression we do,
but I need to think more carefully about it.
Let's discuss that during KVM Forum?
The two main goals of versioned CPU models in x86 are:
1) Decoupling CPU model updates from machine-types (users should be
able to update a CPU model definition without changing machine
type).
2) Letting management software automate CPU model updates.
Normally this is necessary when bare metal microcode or
software updates add/remove features from CPUs. Sometimes the
Virtual CPU model update needs to be performed before the host
updates are applied (if features are being removed).
The main constraint that makes it difficult to address the above
without a new API is:
A) Every CPU model in x86 except "host" is already expected to
be migration-safe (I don't know how this compares to s390x).
>
> > query-cpu-definitions. This only has one problem: fetching CPU
> > alias information for multiple machine types required restarting
> > QEMU for each machine being queried.
> >
> > This series adds a new `machine` parameter to
> > query-cpu-definitions, that can be used to query CPU model alias
> > information for multiple machines without restarting QEMU.
> >
> > Eduardo Habkost (7):
> > i386: Use g_autofree at x86_cpu_list_entry()
> > i386: Add default_version parameter to CPU version functions
> > i386: Don't use default_cpu_version at "-cpu help"
> > machine: machine_find_class() function
> > i386: Remove x86_cpu_set_default_version() function
> > i386: Don't use default_cpu_version() inside query-cpu-definitions
> > cpu: Add `machine` parameter to query-cpu-definitions
> >
> > qapi/machine-target.json | 14 +++-
> > include/hw/boards.h | 1 +
> > include/hw/i386/pc.h | 5 +-
> > target/i386/cpu.h | 6 --
> > hw/core/machine.c | 16 ++++
> > hw/i386/pc.c | 3 -
> > target/arm/helper.c | 4 +-
> > target/i386/cpu.c | 93 +++++++++++++++-------
> > target/mips/helper.c | 4 +-
> > target/ppc/translate_init.inc.c | 4 +-
> > target/s390x/cpu_models.c | 4 +-
> > vl.c | 17 +---
> > tests/acceptance/x86_cpu_model_versions.py | 42 ++++++++++
> > 13 files changed, 154 insertions(+), 59 deletions(-)
> >
>
>
> --
>
> Thanks,
>
> David / dhildenb
--
Eduardo
2
1
Re: [libvirt] [PATCH 0/7] i386: Add `machine` parameter to query-cpu-definitions
by Eduardo Habkost 25 Oct '19
by Eduardo Habkost 25 Oct '19
25 Oct '19
CCing mskrivanek, danpb, libvir-list.
On Fri, Oct 25, 2019 at 10:02:29AM +0200, David Hildenbrand wrote:
> On 25.10.19 09:55, Christian Borntraeger wrote:
> >
> >
> > On 25.10.19 09:17, David Hildenbrand wrote:
> > > On 25.10.19 04:25, Eduardo Habkost wrote:
> > > > We had introduced versioned CPU models in QEMU 4.1, including a
> > > > method for querying for CPU model versions using
> > >
> > > Interesting, I was not aware of that.
> > >
> > > On s390x, we somewhat have versioned CPU models, but we decided against giving them explicit names (e.g., z13-v1 or z13-4.1.0), because it didn't really seem to be necessary. (and we often implement/add features for older CPU models, there is a lot of fluctuation) Actually, you would have had to add "z13-z/VM-x.x.x" or "z13-LPAR-x.x.x" or "z13-KVM-x.x.x" to model the features you actually see in all the different virtual environments ("what a CPU looks like"). Not to talk about QEMU versions in addition to that. So we decided to always model what you would see under LPAR and are able to specify for a KVM guest. So you can use "z13" in an up-to-date LPAR environment, but not in a z/VM environment (you would have to disable features).
> > >
> > > Each (!base) CPU model has a specific feature set per machine. Libvirt uses query-cpu-model-expansion() to convert this model+machine to a machine-independent representation. That representation is sufficient for all use cases we were aware of (esp. "virsh domcapabilities", the host CPU model, migration).
> > >
> > > While s390x has versioned CPU models, we have no explicit way of specifying them for older machines, besides going over query-cpu-model-expansion and using expanded "base model + features".
> > >
> > > I can see that this might make sense on x86-64, where you only have maybe 3 versions of a CPU (e.g., the one Intel messed up first - Haswell, the one Intel messed up next - Haswell-noTSX, and the one that Intel eventually did right - Haswell-noTSX-IBRS) and you might want to specify "Haswell" vs. "Haswell-IBRS" vs. "Haswell-noTSX-IBRS". But actually, you will always want to go for "Haswell-noTSX-IBRS", because you can expect to run in updated environments if I am not wrong, everything else are corner cases.
> > >
> > > Of course, versioned CPU model are neat to avoid "base model + list of features", but at least for expanding the host model on s390x, it is not really helpful. When migrating, the model expansion does the trick.
> > >
> > > I haven't looked into details of "how to specify or model versions". Maybe IBM wants to look into creating versions for all the old models we had. But again, not sure if that is of any help for s390x. CCing IBM.
> >
> > I agree that this does not look very helpful.
> > Especially as several things depend on the kernel version a QEMU version is
> > not sufficient to be guarantee construction success.
> > So we would need something like z14-qemu4.0-kernel-5.2-suse-flavour-onLPAR
> >
> > Instead we do check if we can construct an equivalent model on the migration target.
> > And that model is precise. We do even have versions.
> > Right now with QEMU on s390 our models are versioned in a way that we fence of
> > facilities for old machine versions.
> >
> > For example
> > -machine s390-virtio-ccw-3.1 -cpu z14 will not have the multiple epoch facility
> > and
> > -machine s390-virtio-ccw-4.0 -cpu z14 will have the multiple epoch facility.
> > As migration does always require the tuple of machine and cpu this is save. I fail
> > to see what the benefit of an explicit z14-3.1 would be.
> >
>
> AFAIKS the only real benefit of versioned CPU models is that you can add new
> CPU model versions without new QEMU version.
>
> Then you can specify "-cpu z13-vX" or "-cpu z13 -cpuv X" (no idea how
> versioned CPU model were implemented) on any QEMU machine. Which is the same
> as telling your customer "please use z13,featX=on" in case you have a good
> reason to not use the host model (along with baselining) but use an explicit
> model.
Exactly. oVirt, specifically, don't use host-model.
>
> If you can change the default model of QEMU machines, you can automate this
> process. I am pretty sure this is a corner case, though (e.g., IBRS).
> Usually you have a new QEMU machine and can simply enable the new feature
> from that point on.
When -noTSX happened, we thought it was a corner case. Then we
had -IBRS & -IBPB. Then we had SSBD (with no new CPU models).
Then we had MD_CLEAR (with no new CPU models). It's now very
easy to get an insecure VM created if you are not using
host-model.
--
Eduardo
1
0
Re: [libvirt] [PATCH 7/7] cpu: Add `machine` parameter to query-cpu-definitions
by Eduardo Habkost 25 Oct '19
by Eduardo Habkost 25 Oct '19
25 Oct '19
CCing libvir-list.
On Fri, Oct 25, 2019 at 08:36:59AM +0200, Markus Armbruster wrote:
> Eduardo Habkost <ehabkost(a)redhat.com> writes:
> > The new parameter can be used by management software to query for
> > CPU model alias information for multiple machines without
> > restarting QEMU.
[...]
> > @@ -317,9 +321,17 @@
> ##
> # @query-cpu-definitions:
> > #
> > # Return a list of supported virtual CPU definitions
> > #
> > +# @machine: Name of machine type. The command returns some data
> > +# that machine-specific. This overrides the machine type
>
> "that is machine-specific"
>
> > +# used to look up that information. This can be used,
> > +# for example, to query machine-specific CPU model aliases
> > +# without restarting QEMU (since 4.2)
> > +#
> > # Returns: a list of CpuDefInfo
> > #
> > # Since: 1.2.0
> > ##
> > -{ 'command': 'query-cpu-definitions', 'returns': ['CpuDefinitionInfo'],
> > +{ 'command': 'query-cpu-definitions',
> > + 'data': { '*machine': 'str' },
> > + 'returns': ['CpuDefinitionInfo'],
> > 'if': 'defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386) || defined(TARGET_S390X) || defined(TARGET_MIPS)' }
>
> I'm afraid the doc comment is less than clear. Before I can suggest
> improvements, I have questions.
>
> Looks like @alias-of is the only part of the return value that changes
> when I re-run query-cpu-definitions with another @machine argument.
> Correct?
Yes.
>
> How is this going to be used? Will management software run
> query-cpu-definitions for each machine type returned by query-machines?
> Or just for a few of them?
I don't know. I'll let Jiri and other libvirt developers answer
that.
--
Eduardo
1
0
[libvirt] [RFC PATCH 00/19] Configurable policy for handling deprecated interfaces
by Markus Armbruster 24 Oct '19
by Markus Armbruster 24 Oct '19
24 Oct '19
This series is RFC because it's incomplete, and the warning idea in
PATCH 18 is half-baked. I'm soliciting feed back from the management
application crowd: is this going into a useful direction?
The series adresses only deprecated commands and events. Good enough
to demonstrate the ideas, I think. A complete solution should
additionally cover arguments and return values. Feels feasible to me.
New option -compat deprecated-input=<in-policy>,deprecated-output=out-policy
configures the policy. Available input policies:
* accept: Accept deprecated commands with a warning (default)
* reject: Reject deprecated commands
* crash: Crash on deprecated command
Available output policies:
* accept: Emit deprecated events (default)
* hide: Suppress deprecated events
See also last item of
Subject: Minutes of KVM Forum BoF on deprecating stuff
Date: Fri, 26 Oct 2018 16:03:51 +0200
Message-ID: <87mur0ls8o.fsf(a)dusky.pond.sub.org>
https://lists.nongnu.org/archive/html/qemu-devel/2018-10/msg05828.html
Markus Armbruster (19):
tests/test-qmp-cmds: Factor out qmp_dispatch() test helpers
tests/test-qmp-cmds: Check responses more thoroughly
tests/test-qmp-cmds: Simplify test data setup
tests/test-qmp-event: Simplify test data setup
tests/test-qmp-event: Use qobject_is_equal()
tests/test-qmp-event: Check event is actually emitted
qapi: Add feature flags to remaining definitions
qapi: Consistently put @features parameter right after @ifcond
qapi: Inline do_qmp_dispatch() into qmp_dispatch()
qapi: Simplify how qmp_dispatch() deals with QCO_NO_SUCCESS_RESP
qapi: Simplify how qmp_dispatch() gets the request ID
qapi: Replace qmp_dispatch()'s TODO comment by an explanation
qapi: New special feature flag "deprecated"
qemu-options: New -compat to set policy for "funny" interfaces
qapi: Mark deprecated QMP commands with feature 'deprecated'
qapi: Implement -compat deprecated-input=reject for commands
qapi: Implement -compat deprecated-input=crash for commands
qapi: Include a warning in the response to a deprecated command
qapi: Implement -compat deprecated-output=hide for events
docs/devel/qapi-code-gen.txt | 21 +-
tests/qapi-schema/doc-good.texi | 32 ++-
qapi/common.json | 48 ++++
qapi/introspect.json | 28 ++-
qapi/machine.json | 24 +-
qapi/migration.json | 36 ++-
qapi/misc.json | 25 +-
include/qapi/compat-policy.h | 20 ++
include/qapi/qmp/dispatch.h | 1 +
qapi/qmp-dispatch.c | 140 +++++++-----
tests/test-qmp-cmds.c | 216 +++++++++++-------
tests/test-qmp-event.c | 181 ++++-----------
vl.c | 17 ++
qemu-options.hx | 24 ++
scripts/qapi/commands.py | 16 +-
scripts/qapi/doc.py | 16 +-
scripts/qapi/events.py | 16 +-
scripts/qapi/expr.py | 11 +-
scripts/qapi/introspect.py | 41 ++--
scripts/qapi/schema.py | 138 ++++++-----
scripts/qapi/types.py | 8 +-
scripts/qapi/visit.py | 8 +-
tests/Makefile.include | 1 +
tests/qapi-schema/alternate-base.err | 2 +-
tests/qapi-schema/doc-good.json | 18 +-
tests/qapi-schema/doc-good.out | 20 +-
.../qapi-schema/features-deprecated-type.err | 2 +
.../qapi-schema/features-deprecated-type.json | 3 +
.../qapi-schema/features-deprecated-type.out | 0
tests/qapi-schema/qapi-schema-test.json | 31 ++-
tests/qapi-schema/qapi-schema-test.out | 29 ++-
tests/qapi-schema/test-qapi.py | 19 +-
32 files changed, 731 insertions(+), 461 deletions(-)
create mode 100644 include/qapi/compat-policy.h
create mode 100644 tests/qapi-schema/features-deprecated-type.err
create mode 100644 tests/qapi-schema/features-deprecated-type.json
create mode 100644 tests/qapi-schema/features-deprecated-type.out
--
2.21.0
2
23
24 Oct '19
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/internal.h | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/src/internal.h b/src/internal.h
index 5b0a2335f5..0ff9f496ac 100644
--- a/src/internal.h
+++ b/src/internal.h
@@ -86,10 +86,8 @@
#define STRCASEPREFIX(a, b) (c_strncasecmp(a, b, strlen(b)) == 0)
#define STRSKIP(a, b) (STRPREFIX(a, b) ? (a) + strlen(b) : NULL)
-#define STREQ_NULLABLE(a, b) \
- ((a) ? (b) && STREQ((a), (b)) : !(b))
-#define STRNEQ_NULLABLE(a, b) \
- ((a) ? !(b) || STRNEQ((a), (b)) : !!(b))
+#define STREQ_NULLABLE(a, b) (g_strcmp0(a, b) == 0)
+#define STRNEQ_NULLABLE(a, b) (g_strcmp0(a, b) != 0)
#define NUL_TERMINATE(buf) do { (buf)[sizeof(buf)-1] = '\0'; } while (0)
--
2.21.0
5
6
[libvirt] [PATCH] tests: domaincaps: Fix build when WITH_QEMU is disabled
by Peter Krempa 24 Oct '19
by Peter Krempa 24 Oct '19
24 Oct '19
doTestQemuInternal and doTestQemu are used only when WITH_QEMU is
enabled.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
tests/domaincapstest.c | 5 +++++
1 file changed, 5 insertions(+)
Pushed as a fix for broken build.
diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c
index 0197c61c8a..f77accdb76 100644
--- a/tests/domaincapstest.c
+++ b/tests/domaincapstest.c
@@ -266,6 +266,9 @@ test_virDomainCapsFormat(const void *opaque)
return ret;
}
+
+#if WITH_QEMU
+
static int
doTestQemuInternal(const char *version,
const char *machine,
@@ -349,6 +352,8 @@ doTestQemu(const char *inputDir G_GNUC_UNUSED,
return 0;
}
+#endif
+
static int
mymain(void)
{
--
2.21.0
1
0
[libvirt] [PATCH 00/75] Drop virAsprintf() in favor of g_strdup_printf()
by Michal Privoznik 24 Oct '19
by Michal Privoznik 24 Oct '19
24 Oct '19
You can find these also on my github:
https://github.com/zippy2/libvirt/tree/virasprintf_void
Good luck.
Michal PrÃvoznÃk (75):
src: Don't rely on virAsprintf() returning string length
qemu_command: Change logic in qemuVirCommandGet{FDSet,GetDevSet}
access: Drop virAsprintf() and virAsprintfQuiet() retval checking
bhyve: Drop virAsprintf() and virAsprintfQuiet() retval checking
conf: Drop virAsprintf() and virAsprintfQuiet() retval checking
cpu: Drop virAsprintf() and virAsprintfQuiet() retval checking
esx: Drop virAsprintf() and virAsprintfQuiet() retval checking
hyperv: Drop virAsprintf() and virAsprintfQuiet() retval checking
interface: Drop virAsprintf() and virAsprintfQuiet() retval checking
libxl: Drop virAsprintf() and virAsprintfQuiet() retval checking
locking: Drop virAsprintf() and virAsprintfQuiet() retval checking
logging: Drop virAsprintf() and virAsprintfQuiet() retval checking
lxc: Drop virAsprintf() and virAsprintfQuiet() retval checking
network: Drop virAsprintf() and virAsprintfQuiet() retval checking
node_device: Drop virAsprintf() and virAsprintfQuiet() retval checking
nwfilter: Drop virAsprintf() and virAsprintfQuiet() retval checking
openvz: Drop virAsprintf() and virAsprintfQuiet() retval checking
phyp: Drop virAsprintf() and virAsprintfQuiet() retval checking
qemu: Drop virAsprintf() and virAsprintfQuiet() retval checking
remote: Drop virAsprintf() and virAsprintfQuiet() retval checking
rpc: Drop virAsprintf() and virAsprintfQuiet() retval checking
security: Drop virAsprintf() and virAsprintfQuiet() retval checking
storage: Drop virAsprintf() and virAsprintfQuiet() retval checking
test: Drop virAsprintf() and virAsprintfQuiet() retval checking
util: Drop virAsprintf() and virAsprintfQuiet() retval checking
secret: Drop virAsprintf() and virAsprintfQuiet() retval checking
vbox: Drop virAsprintf() and virAsprintfQuiet() retval checking
vmware: Drop virAsprintf() and virAsprintfQuiet() retval checking
vmx: Drop virAsprintf() and virAsprintfQuiet() retval checking
vz: Drop virAsprintf() and virAsprintfQuiet() retval checking
tests: Drop virAsprintf() and virAsprintfQuiet() retval checking
tools: Drop virAsprintf() and virAsprintfQuiet() retval checking
Drop virAsprintf() and virAsprintfQuiet() retval checking
virstring: Make virAsprintf() return no value
Rename virAsprintfQuiet() to virAsprintf()
virstring: Drop virAsprintfQuiet()
access: Use g_strdup_printf() instead of virAsprintf()
bhyve: Use g_strdup_printf() instead of virAsprintf()
conf: Use g_strdup_printf() instead of virAsprintf()
cpu: Use g_strdup_printf() instead of virAsprintf()
esx: Use g_strdup_printf() instead of virAsprintf()
hyperv: Use g_strdup_printf() instead of virAsprintf()
interface: Use g_strdup_printf() instead of virAsprintf()
libxl: Use g_strdup_printf() instead of virAsprintf()
locking: Use g_strdup_printf() instead of virAsprintf()
logging: Use g_strdup_printf() instead of virAsprintf()
lxc: Use g_strdup_printf() instead of virAsprintf()
network: Use g_strdup_printf() instead of virAsprintf()
node_device: Use g_strdup_printf() instead of virAsprintf()
nwfilter: Use g_strdup_printf() instead of virAsprintf()
openvz: Use g_strdup_printf() instead of virAsprintf()
phyp: Use g_strdup_printf() instead of virAsprintf()
qemu: Use g_strdup_printf() instead of virAsprintf()
remote: Use g_strdup_printf() instead of virAsprintf()
rpc: Use g_strdup_printf() instead of virAsprintf()
secret: Use g_strdup_printf() instead of virAsprintf()
security: Use g_strdup_printf() instead of virAsprintf()
storage: Use g_strdup_printf() instead of virAsprintf()
test: Use g_strdup_printf() instead of virAsprintf()
util: Use g_strdup_printf() instead of virAsprintf()
vbox: Use g_strdup_printf() instead of virAsprintf()
vmware: Use g_strdup_printf() instead of virAsprintf()
vmx: Use g_strdup_printf() instead of virAsprintf()
vz: Use g_strdup_printf() instead of virAsprintf()
tests: Use g_strdup_printf() instead of virAsprintf()
tools: Use g_strdup_printf() instead of virAsprintf()
Use g_strdup_printf instead of virAsprintf everywhere
virpcimock: Make @fakerootdir static
Drop virAsprintf()
Rename virVasprintfQuiet() to virVasprintf()
virstring: Drop virVasprintfQuiet()
Drop virVasprintf() retval checking
virstring: Make virVasprintf() return no value
Use g_strdup_vprintf() instead of virVasprintf() everywhere
Drop virVasprintf()
build-aux/syntax-check.mk | 10 +-
docs/hacking.html.in | 13 +-
m4/virt-compile-warnings.m4 | 2 -
src/access/viraccessdriverpolkit.c | 6 +-
src/bhyve/bhyve_capabilities.c | 6 +-
src/bhyve/bhyve_process.c | 16 +-
src/conf/capabilities.c | 3 +-
src/conf/domain_addr.c | 8 +-
src/conf/domain_audit.c | 60 +++-----
src/conf/domain_conf.c | 48 +++---
src/conf/moment_conf.c | 5 +-
src/conf/network_conf.c | 2 +-
src/conf/node_device_util.c | 3 +-
src/conf/snapshot_conf.c | 5 +-
src/conf/storage_conf.c | 6 +-
src/conf/virchrdev.c | 7 +-
src/conf/virnetworkobj.c | 8 +-
src/conf/virnetworkportdef.c | 2 +-
src/conf/virnwfilterbindingobj.c | 2 +-
src/conf/virstorageobj.c | 3 +-
src/cpu/cpu_ppc64.c | 30 ++--
src/cpu/cpu_x86.c | 27 ++--
src/driver.c | 6 +-
src/esx/esx_driver.c | 54 +++----
src/esx/esx_storage_backend_vmfs.c | 67 +++-----
src/esx/esx_stream.c | 11 +-
src/esx/esx_vi.c | 31 ++--
src/hyperv/hyperv_driver.c | 11 +-
src/hyperv/hyperv_wmi.c | 23 +--
src/interface/interface_backend_netcf.c | 7 +-
src/interface/interface_backend_udev.c | 14 +-
src/libvirt-admin.c | 12 +-
src/libvirt_private.syms | 2 -
src/libxl/libxl_conf.c | 34 ++---
src/libxl/libxl_domain.c | 34 ++---
src/libxl/libxl_domain.h | 2 +-
src/libxl/libxl_driver.c | 19 +--
src/libxl/libxl_logger.c | 14 +-
src/libxl/libxl_migration.c | 9 +-
src/libxl/xen_common.c | 11 +-
src/libxl/xen_xl.c | 18 +--
src/libxl/xen_xm.c | 6 +-
src/locking/lock_daemon.c | 17 +--
src/locking/lock_daemon_config.c | 5 +-
src/locking/lock_driver_lockd.c | 9 +-
src/locking/lock_driver_sanlock.c | 12 +-
src/locking/lock_manager.c | 4 +-
src/logging/log_daemon.c | 26 +---
src/logging/log_daemon_config.c | 5 +-
src/logging/log_manager.c | 5 +-
src/lxc/lxc_container.c | 68 ++++-----
src/lxc/lxc_controller.c | 79 ++++------
src/lxc/lxc_driver.c | 15 +-
src/lxc/lxc_fuse.c | 10 +-
src/lxc/lxc_monitor.c | 4 +-
src/lxc/lxc_native.c | 11 +-
src/lxc/lxc_process.c | 35 ++---
src/network/bridge_driver.c | 69 ++++-----
src/network/leaseshelper.c | 6 +-
src/node_device/node_device_driver.c | 3 +-
src/node_device/node_device_hal.c | 7 +-
src/node_device/node_device_udev.c | 11 +-
src/nwfilter/nwfilter_dhcpsnoop.c | 16 +-
src/openvz/openvz_conf.c | 18 +--
src/openvz/openvz_driver.c | 7 +-
src/phyp/phyp_driver.c | 19 +--
src/qemu/qemu_agent.c | 9 +-
src/qemu/qemu_alias.c | 114 +++++++-------
src/qemu/qemu_block.c | 45 +++---
src/qemu/qemu_blockjob.c | 12 +-
src/qemu/qemu_capabilities.c | 14 +-
src/qemu/qemu_checkpoint.c | 11 +-
src/qemu/qemu_command.c | 113 ++++++--------
src/qemu/qemu_conf.c | 141 ++++++-----------
src/qemu/qemu_conf.h | 4 +-
src/qemu/qemu_domain.c | 168 ++++++++-------------
src/qemu/qemu_domain.h | 6 +-
src/qemu/qemu_driver.c | 6 +-
src/qemu/qemu_firmware.c | 3 +-
src/qemu/qemu_hotplug.c | 80 ++++------
src/qemu/qemu_interface.c | 5 +-
src/qemu/qemu_interop_config.c | 9 +-
src/qemu/qemu_migration.c | 33 ++--
src/qemu/qemu_migration_cookie.c | 3 +-
src/qemu/qemu_monitor.c | 33 ++--
src/qemu/qemu_monitor_json.c | 26 +---
src/qemu/qemu_monitor_text.c | 15 +-
src/qemu/qemu_process.c | 74 +++------
src/qemu/qemu_slirp.c | 18 +--
src/qemu/qemu_tpm.c | 19 +--
src/qemu/qemu_vhost_user_gpu.c | 3 +-
src/remote/remote_daemon.c | 37 ++---
src/remote/remote_daemon_config.c | 5 +-
src/remote/remote_daemon_dispatch.c | 20 +--
src/remote/remote_driver.c | 20 +--
src/rpc/virnetclient.c | 23 +--
src/rpc/virnetlibsshsession.c | 17 +--
src/rpc/virnetsocket.c | 3 +-
src/rpc/virnetsshsession.c | 19 +--
src/rpc/virnettlscontext.c | 39 ++---
src/secret/secret_driver.c | 14 +-
src/security/security_apparmor.c | 38 ++---
src/security/security_dac.c | 30 ++--
src/security/security_selinux.c | 59 +++-----
src/security/security_util.c | 14 +-
src/security/virt-aa-helper.c | 73 ++-------
src/storage/storage_backend_disk.c | 7 +-
src/storage/storage_backend_gluster.c | 16 +-
src/storage/storage_backend_iscsi.c | 13 +-
src/storage/storage_backend_iscsi_direct.c | 25 ++-
src/storage/storage_backend_logical.c | 16 +-
src/storage/storage_backend_mpath.c | 9 +-
src/storage/storage_backend_rbd.c | 16 +-
src/storage/storage_backend_scsi.c | 11 +-
src/storage/storage_backend_sheepdog.c | 7 +-
src/storage/storage_backend_vstorage.c | 6 +-
src/storage/storage_backend_zfs.c | 13 +-
src/storage/storage_driver.c | 17 +--
src/storage/storage_file_gluster.c | 10 +-
src/storage/storage_util.c | 87 ++++-------
src/test/test_driver.c | 35 ++---
src/util/viraudit.c | 6 +-
src/util/virauth.c | 17 +--
src/util/virauthconfig.c | 9 +-
src/util/vircgroup.c | 39 ++---
src/util/vircgroupv1.c | 102 +++++--------
src/util/vircgroupv2.c | 97 ++++--------
src/util/vircommand.c | 12 +-
src/util/virconf.c | 10 +-
src/util/virdevmapper.c | 7 +-
src/util/virdnsmasq.c | 39 ++---
src/util/virebtables.c | 5 +-
src/util/virerror.c | 9 +-
src/util/virfile.c | 77 +++-------
src/util/virfirewall.c | 8 +-
src/util/virhostcpu.c | 11 +-
src/util/virhostdev.c | 3 +-
src/util/virhostmem.c | 21 +--
src/util/viriptables.c | 20 +--
src/util/viriscsi.c | 6 +-
src/util/virjson.c | 12 +-
src/util/virkmod.c | 3 +-
src/util/virlockspace.c | 2 +-
src/util/virlog.c | 115 ++++++--------
src/util/virlog.h | 2 +-
src/util/virmacmap.c | 2 +-
src/util/virmdev.c | 11 +-
src/util/virnetdev.c | 40 ++---
src/util/virnetdevbandwidth.c | 61 +++-----
src/util/virnetdevbridge.c | 16 +-
src/util/virnetdevip.c | 5 +-
src/util/virnetdevmacvlan.c | 6 +-
src/util/virnetdevopenvswitch.c | 18 +--
src/util/virnetdevtap.c | 6 +-
src/util/virnetdevveth.c | 9 +-
src/util/virnuma.c | 29 ++--
src/util/virpci.c | 85 ++++-------
src/util/virpidfile.c | 9 +-
src/util/virprocess.c | 24 ++-
src/util/virqemu.c | 6 +-
src/util/virrandom.c | 5 +-
src/util/virresctrl.c | 21 +--
src/util/virrotatingfile.c | 12 +-
src/util/virscsi.c | 31 ++--
src/util/virscsihost.c | 18 +--
src/util/virscsivhost.c | 4 +-
src/util/virsocketaddr.c | 19 +--
src/util/virstoragefile.c | 14 +-
src/util/virstring.c | 50 +-----
src/util/virstring.h | 50 +-----
src/util/virsystemd.c | 3 +-
src/util/virtpm.c | 44 +++---
src/util/virtypedparam.c | 12 +-
src/util/viruri.c | 3 +-
src/util/virusb.c | 19 +--
src/util/virutil.c | 18 +--
src/util/virvhba.c | 52 +++----
src/vbox/vbox_MSCOMGlue.c | 4 +-
src/vbox/vbox_XPCOMCGlue.c | 3 +-
src/vbox/vbox_common.c | 62 ++++----
src/vbox/vbox_network.c | 13 +-
src/vbox/vbox_snapshot_conf.c | 18 +--
src/vbox/vbox_storage.c | 5 +-
src/vbox/vbox_tmpl.c | 32 ++--
src/vmware/vmware_conf.c | 31 ++--
src/vmware/vmware_conf.h | 4 +-
src/vmx/vmx.c | 13 +-
src/vz/vz_driver.c | 3 +-
src/vz/vz_sdk.c | 46 ++----
tests/bhyveargv2xmltest.c | 10 +-
tests/bhyvexml2argvtest.c | 18 +--
tests/bhyvexml2xmltest.c | 10 +-
tests/commandtest.c | 27 ++--
tests/cputest.c | 95 +++++-------
tests/domaincapstest.c | 26 ++--
tests/domainconftest.c | 5 +-
tests/eventtest.c | 4 +-
tests/fchosttest.c | 7 +-
tests/fdstreamtest.c | 6 +-
tests/genericxml2xmltest.c | 10 +-
tests/interfacexml2xmltest.c | 5 +-
tests/libxlxml2domconfigtest.c | 8 +-
tests/lxcconf2xmltest.c | 20 +--
tests/lxcxml2xmltest.c | 10 +-
tests/networkxml2conftest.c | 9 +-
tests/networkxml2firewalltest.c | 16 +-
tests/networkxml2xmltest.c | 9 +-
tests/networkxml2xmlupdatetest.c | 15 +-
tests/nodedevxml2xmltest.c | 5 +-
tests/nssmock.c | 9 +-
tests/nwfilterxml2firewalltest.c | 15 +-
tests/nwfilterxml2xmltest.c | 9 +-
tests/openvzutilstest.c | 6 +-
tests/qemuagenttest.c | 4 +-
tests/qemublocktest.c | 34 ++---
tests/qemucapabilitiestest.c | 20 +--
tests/qemucaps2xmltest.c | 15 +-
tests/qemudomaincheckpointxml2xmltest.c | 5 +-
tests/qemudomainsnapshotxml2xmltest.c | 5 +-
tests/qemufirmwaretest.c | 4 +-
tests/qemuhotplugtest.c | 29 ++--
tests/qemumemlocktest.c | 5 +-
tests/qemumigparamstest.c | 23 ++-
tests/qemumonitorjsontest.c | 56 +++----
tests/qemumonitortestutils.c | 42 ++----
tests/qemusecuritymock.c | 5 +-
tests/qemusecuritytest.c | 3 +-
tests/qemuvhostusertest.c | 4 +-
tests/qemuxml2argvtest.c | 35 ++---
tests/qemuxml2xmltest.c | 41 ++---
tests/scsihosttest.c | 26 +---
tests/secretxml2xmltest.c | 14 +-
tests/securityselinuxlabeltest.c | 23 +--
tests/storagebackendsheepdogtest.c | 11 +-
tests/storagepoolcapstest.c | 6 +-
tests/storagepoolxml2argvtest.c | 11 +-
tests/storagepoolxml2xmltest.c | 9 +-
tests/storagevolxml2argvtest.c | 35 ++---
tests/storagevolxml2xmltest.c | 13 +-
tests/sysinfotest.c | 18 +--
tests/testutils.c | 17 +--
tests/testutils.h | 5 +-
tests/testutilsqemu.c | 11 +-
tests/vboxsnapshotxmltest.c | 5 +-
tests/virbuftest.c | 7 +-
tests/vircaps2xmltest.c | 15 +-
tests/vircgroupmock.c | 11 +-
tests/vircgrouptest.c | 5 +-
tests/virconftest.c | 7 +-
tests/virfilemock.c | 2 +-
tests/virfiletest.c | 3 +-
tests/virfilewrapper.c | 4 +-
tests/virhostcputest.c | 38 ++---
tests/virjsontest.c | 27 ++--
tests/virmacmaptest.c | 12 +-
tests/virnetdaemontest.c | 10 +-
tests/virnetdevmock.c | 8 +-
tests/virnetdevopenvswitchtest.c | 5 +-
tests/virnetsockettest.c | 6 +-
tests/virnetworkportxml2xmltest.c | 6 +-
tests/virnumamock.c | 3 +-
tests/virnwfilterbindingxml2xmltest.c | 7 +-
tests/virpcimock.c | 103 +++++--------
tests/virpcitest.c | 16 +-
tests/virrandommock.c | 5 +-
tests/virresctrltest.c | 15 +-
tests/virschematest.c | 19 +--
tests/virscsitest.c | 11 +-
tests/virshtest.c | 5 +-
tests/virstoragetest.c | 63 ++++----
tests/virtestmock.c | 8 +-
tests/virusbmock.c | 9 +-
tests/virusbtest.c | 6 +-
tests/vmwarevertest.c | 4 +-
tests/vmx2xmltest.c | 18 +--
tests/xlconfigtest.c | 8 +-
tests/xmconfigtest.c | 8 +-
tests/xml2vmxtest.c | 16 +-
tools/virsh-completer-domain.c | 7 +-
tools/virsh-completer-host.c | 13 +-
tools/virsh-completer.c | 6 +-
tools/virsh-domain-monitor.c | 21 ++-
tools/virsh-domain.c | 34 ++---
tools/virsh-host.c | 3 +-
tools/virsh-interface.c | 11 +-
tools/virsh-network.c | 3 +-
tools/virsh-pool.c | 15 +-
tools/virsh-volume.c | 9 +-
tools/virt-admin.c | 6 +-
tools/virt-host-validate-common.c | 10 +-
tools/vsh.c | 53 ++-----
291 files changed, 2096 insertions(+), 3822 deletions(-)
--
2.21.0
6
121
24 Oct '19
I finally got annoyed enough by the fact that this test program,
unlike qemucapabilitiestest and qemucaps2xmltest, is not
self-maintaining.
The series, as posted to the list, is heavily snipped: grab the full
version with
$ git fetch https://gitlab.com/abologna/libvirt.git domaincapstest
Andrea Bolognani (12):
tests/qemucapabilities: Separate inputDir and outputDir
tests: testQemuCapsIterate: Don't ignore malformed file names
tests: testQemuCapsIterate: Validate suffix
tests: testQemuCapsIterate: Pass inputDir to callback
tests: testQemuCapsIterate: Pass suffix to callback
tests: testQemuCapsIterate: Pass prefix and version to callback
tests: Rename domaincapsschemadata/ -> domaincapsdata/
tests/domaincaps: Don't mess with test name
tests/domaincaps: Move most of DO_TEST_QEMU() into a function
tests/domaincaps: Don't require redundant information
tests/domaincaps: Make test matrix programmatic
tests/domaincaps: Use testQemuCapsIterate()
tests/Makefile.am | 2 +-
.../bhyve_basic.x86_64.xml | 0
.../bhyve_fbuf.x86_64.xml | 0
.../bhyve_uefi.x86_64.xml | 0
.../empty.xml | 0
.../libxl-xenfv.xml | 0
.../libxl-xenpv.xml | 0
.../qemu_1.5.3-q35.x86_64.xml} | 4 +-
.../qemu_1.5.3-tcg.x86_64.xml} | 6 +-
.../qemu_1.5.3.x86_64.xml} | 2 +-
.../qemu_1.6.0-q35.x86_64.xml} | 4 +-
.../qemu_1.6.0-tcg.x86_64.xml} | 6 +-
.../qemu_1.6.0.x86_64.xml} | 2 +-
.../qemu_1.7.0-q35.x86_64.xml} | 4 +-
.../qemu_1.7.0-tcg.x86_64.xml} | 4 +-
.../qemu_1.7.0.x86_64.xml | 0
.../qemu_2.1.1-q35.x86_64.xml} | 7 +-
.../qemu_2.1.1-tcg.x86_64.xml} | 9 +-
.../qemu_2.1.1.x86_64.xml} | 5 +-
.../qemu_2.10.0-q35.x86_64.xml} | 21 +-
.../qemu_2.10.0-tcg.x86_64.xml} | 3 +-
.../qemu_2.10.0-virt.aarch64.xml} | 3 +-
.../qemu_2.10.0.aarch64.xml} | 1 +
.../qemu_2.10.0.ppc64.xml} | 2 +-
.../qemu_2.10.0.s390x.xml} | 110 ++++-----
.../qemu_2.10.0.x86_64.xml} | 21 +-
.../qemu_2.11.0-q35.x86_64.xml} | 7 +-
.../qemu_2.11.0-tcg.x86_64.xml} | 34 ++-
.../qemu_2.11.0.s390x.xml} | 11 +-
.../qemu_2.11.0.x86_64.xml} | 7 +-
.../qemu_2.12.0-q35.x86_64.xml} | 6 +-
.../qemu_2.12.0-tcg.x86_64.xml} | 50 ++--
.../qemu_2.12.0-virt.aarch64.xml | 0
.../qemu_2.12.0.aarch64.xml} | 5 +-
.../qemu_2.12.0.ppc64.xml | 0
.../qemu_2.12.0.s390x.xml | 0
.../qemu_2.12.0.x86_64.xml | 0
.../qemu_2.4.0-q35.x86_64.xml} | 4 +-
.../qemu_2.4.0-tcg.x86_64.xml} | 6 +-
.../qemu_2.4.0.x86_64.xml} | 2 +-
.../qemu_2.5.0-q35.x86_64.xml} | 4 +-
.../qemu_2.5.0-tcg.x86_64.xml} | 6 +-
.../qemu_2.5.0.x86_64.xml} | 2 +-
.../qemu_2.6.0-q35.x86_64.xml} | 4 +-
.../qemu_2.6.0-tcg.x86_64.xml} | 4 +-
.../qemu_2.6.0-virt.aarch64.xml | 0
.../qemu_2.6.0.aarch64.xml | 0
.../qemu_2.6.0.ppc64.xml | 0
.../qemu_2.6.0.x86_64.xml | 0
.../qemu_2.7.0-q35.x86_64.xml} | 5 +-
.../qemu_2.7.0-tcg.x86_64.xml} | 7 +-
.../qemu_2.7.0.s390x.xml | 0
.../qemu_2.7.0.x86_64.xml} | 3 +-
.../qemu_2.8.0-q35.x86_64.xml} | 6 +-
.../qemu_2.8.0-tcg.x86_64.xml | 0
.../qemu_2.8.0.s390x.xml | 0
.../qemu_2.8.0.x86_64.xml | 0
.../qemu_2.9.0-q35.x86_64.xml | 0
.../qemu_2.9.0-tcg.x86_64.xml | 0
.../qemu_2.9.0.ppc64.xml} | 2 +-
.../qemu_2.9.0.s390x.xml} | 7 +-
.../qemu_2.9.0.x86_64.xml | 0
.../qemu_3.0.0-q35.x86_64.xml} | 11 +-
.../qemu_3.0.0-tcg.x86_64.xml} | 52 +++--
.../qemu_3.0.0.ppc64.xml} | 3 +-
.../qemu_3.0.0.s390x.xml | 0
.../qemu_3.0.0.x86_64.xml} | 7 +-
.../qemu_3.1.0-q35.x86_64.xml} | 6 +-
.../qemu_3.1.0-tcg.x86_64.xml} | 55 +++--
.../qemu_3.1.0.ppc64.xml} | 3 +-
.../qemu_3.1.0.x86_64.xml | 0
.../qemu_4.0.0-q35.x86_64.xml} | 6 +-
.../qemu_4.0.0-tcg.x86_64.xml} | 55 +++--
.../qemu_4.0.0-virt.aarch64.xml} | 16 +-
.../qemu_4.0.0.aarch64.xml} | 2 +-
.../qemu_4.0.0.ppc64.xml} | 2 +-
.../qemu_4.0.0.s390x.xml | 0
.../qemu_4.0.0.x86_64.xml | 0
.../qemu_4.1.0-q35.x86_64.xml} | 6 +-
.../qemu_4.1.0-tcg.x86_64.xml} | 59 +++--
.../qemu_4.1.0.x86_64.xml | 0
.../qemu_4.2.0-q35.x86_64.xml} | 6 +-
.../qemu_4.2.0-tcg.x86_64.xml} | 59 +++--
.../qemu_4.2.0-virt.aarch64.xml} | 14 +-
.../qemu_4.2.0.aarch64.xml | 0
.../qemu_4.2.0.ppc64.xml | 0
.../qemu_4.2.0.x86_64.xml | 0
tests/domaincapstest.c | 221 ++++++++----------
.../caps_1.5.3.x86_64.xml | 2 +-
.../caps_1.6.0.x86_64.xml | 2 +-
.../caps_1.7.0.x86_64.xml | 2 +-
.../caps_2.1.1.x86_64.xml | 2 +-
.../caps_2.10.0.aarch64.xml | 2 +-
.../caps_2.10.0.ppc64.xml | 2 +-
.../caps_2.10.0.s390x.xml | 2 +-
.../caps_2.10.0.x86_64.xml | 2 +-
.../caps_2.11.0.s390x.xml | 2 +-
.../caps_2.11.0.x86_64.xml | 2 +-
.../caps_2.12.0.aarch64.xml | 2 +-
.../caps_2.12.0.ppc64.xml | 2 +-
.../caps_2.12.0.s390x.xml | 2 +-
.../caps_2.12.0.x86_64.xml | 2 +-
.../caps_2.4.0.x86_64.xml | 2 +-
.../caps_2.5.0.x86_64.xml | 2 +-
.../caps_2.6.0.aarch64.xml | 2 +-
.../qemucapabilitiesdata/caps_2.6.0.ppc64.xml | 2 +-
.../caps_2.6.0.x86_64.xml | 2 +-
.../qemucapabilitiesdata/caps_2.7.0.s390x.xml | 2 +-
.../caps_2.7.0.x86_64.xml | 2 +-
.../qemucapabilitiesdata/caps_2.8.0.s390x.xml | 2 +-
.../caps_2.8.0.x86_64.xml | 2 +-
.../qemucapabilitiesdata/caps_2.9.0.ppc64.xml | 2 +-
.../qemucapabilitiesdata/caps_2.9.0.s390x.xml | 2 +-
.../caps_2.9.0.x86_64.xml | 2 +-
.../qemucapabilitiesdata/caps_3.0.0.ppc64.xml | 2 +-
.../qemucapabilitiesdata/caps_3.0.0.s390x.xml | 2 +-
.../caps_3.0.0.x86_64.xml | 2 +-
.../qemucapabilitiesdata/caps_3.1.0.ppc64.xml | 2 +-
.../caps_3.1.0.x86_64.xml | 2 +-
.../caps_4.0.0.aarch64.xml | 2 +-
.../qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 2 +-
.../qemucapabilitiesdata/caps_4.0.0.s390x.xml | 2 +-
.../caps_4.0.0.x86_64.xml | 2 +-
.../caps_4.1.0.x86_64.xml | 2 +-
.../caps_4.2.0.aarch64.xml | 2 +-
.../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 2 +-
.../caps_4.2.0.x86_64.xml | 2 +-
tests/qemucapabilitiestest.c | 40 ++--
tests/qemucaps2xmltest.c | 22 +-
tests/testutilsqemu.c | 41 +++-
tests/testutilsqemu.h | 5 +-
tests/virschematest.c | 2 +-
132 files changed, 645 insertions(+), 524 deletions(-)
rename tests/{domaincapsschemadata => domaincapsdata}/bhyve_basic.x86_64.xml (100%)
rename tests/{domaincapsschemadata => domaincapsdata}/bhyve_fbuf.x86_64.xml (100%)
rename tests/{domaincapsschemadata => domaincapsdata}/bhyve_uefi.x86_64.xml (100%)
rename tests/{domaincapsschemadata => domaincapsdata}/empty.xml (100%)
rename tests/{domaincapsschemadata => domaincapsdata}/libxl-xenfv.xml (100%)
rename tests/{domaincapsschemadata => domaincapsdata}/libxl-xenpv.xml (100%)
copy tests/{domaincapsschemadata/qemu_1.7.0.x86_64.xml => domaincapsdata/qemu_1.5.3-q35.x86_64.xml} (98%)
copy tests/{domaincapsschemadata/qemu_1.7.0.x86_64.xml => domaincapsdata/qemu_1.5.3-tcg.x86_64.xml} (97%)
copy tests/{domaincapsschemadata/qemu_1.7.0.x86_64.xml => domaincapsdata/qemu_1.5.3.x86_64.xml} (99%)
copy tests/{domaincapsschemadata/qemu_1.7.0.x86_64.xml => domaincapsdata/qemu_1.6.0-q35.x86_64.xml} (98%)
copy tests/{domaincapsschemadata/qemu_1.7.0.x86_64.xml => domaincapsdata/qemu_1.6.0-tcg.x86_64.xml} (97%)
copy tests/{domaincapsschemadata/qemu_1.7.0.x86_64.xml => domaincapsdata/qemu_1.6.0.x86_64.xml} (99%)
copy tests/{domaincapsschemadata/qemu_1.7.0.x86_64.xml => domaincapsdata/qemu_1.7.0-q35.x86_64.xml} (98%)
copy tests/{domaincapsschemadata/qemu_1.7.0.x86_64.xml => domaincapsdata/qemu_1.7.0-tcg.x86_64.xml} (98%)
copy tests/{domaincapsschemadata => domaincapsdata}/qemu_1.7.0.x86_64.xml (100%)
copy tests/{domaincapsschemadata/qemu_1.7.0.x86_64.xml => domaincapsdata/qemu_2.1.1-q35.x86_64.xml} (96%)
copy tests/{domaincapsschemadata/qemu_1.7.0.x86_64.xml => domaincapsdata/qemu_2.1.1-tcg.x86_64.xml} (95%)
rename tests/{domaincapsschemadata/qemu_1.7.0.x86_64.xml => domaincapsdata/qemu_2.1.1.x86_64.xml} (97%)
copy tests/{domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml => domaincapsdata/qemu_2.10.0-q35.x86_64.xml} (87%)
copy tests/{domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml => domaincapsdata/qemu_2.10.0-tcg.x86_64.xml} (98%)
copy tests/{domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml => domaincapsdata/qemu_2.10.0-virt.aarch64.xml} (98%)
copy tests/{domaincapsschemadata/qemu_2.6.0.aarch64.xml => domaincapsdata/qemu_2.10.0.aarch64.xml} (98%)
copy tests/{domaincapsschemadata/qemu_2.12.0.ppc64.xml => domaincapsdata/qemu_2.10.0.ppc64.xml} (98%)
copy tests/{domaincapsschemadata/qemu_2.12.0.s390x.xml => domaincapsdata/qemu_2.10.0.s390x.xml} (96%)
copy tests/{domaincapsschemadata/qemu_2.9.0.x86_64.xml => domaincapsdata/qemu_2.10.0.x86_64.xml} (87%)
copy tests/{domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml => domaincapsdata/qemu_2.11.0-q35.x86_64.xml} (95%)
copy tests/{domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml => domaincapsdata/qemu_2.11.0-tcg.x86_64.xml} (84%)
copy tests/{domaincapsschemadata/qemu_2.12.0.s390x.xml => domaincapsdata/qemu_2.11.0.s390x.xml} (97%)
copy tests/{domaincapsschemadata/qemu_2.9.0.x86_64.xml => domaincapsdata/qemu_2.11.0.x86_64.xml} (95%)
copy tests/{domaincapsschemadata/qemu_2.12.0.x86_64.xml => domaincapsdata/qemu_2.12.0-q35.x86_64.xml} (98%)
copy tests/{domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml => domaincapsdata/qemu_2.12.0-tcg.x86_64.xml} (78%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_2.12.0-virt.aarch64.xml (100%)
copy tests/{domaincapsschemadata/qemu_2.6.0.aarch64.xml => domaincapsdata/qemu_2.12.0.aarch64.xml} (95%)
copy tests/{domaincapsschemadata => domaincapsdata}/qemu_2.12.0.ppc64.xml (100%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_2.12.0.s390x.xml (100%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_2.12.0.x86_64.xml (100%)
copy tests/{domaincapsschemadata/qemu_2.6.0.x86_64.xml => domaincapsdata/qemu_2.4.0-q35.x86_64.xml} (98%)
copy tests/{domaincapsschemadata/qemu_2.6.0.x86_64.xml => domaincapsdata/qemu_2.4.0-tcg.x86_64.xml} (97%)
copy tests/{domaincapsschemadata/qemu_2.6.0.x86_64.xml => domaincapsdata/qemu_2.4.0.x86_64.xml} (99%)
copy tests/{domaincapsschemadata/qemu_2.6.0.x86_64.xml => domaincapsdata/qemu_2.5.0-q35.x86_64.xml} (98%)
copy tests/{domaincapsschemadata/qemu_2.6.0.x86_64.xml => domaincapsdata/qemu_2.5.0-tcg.x86_64.xml} (97%)
copy tests/{domaincapsschemadata/qemu_2.6.0.x86_64.xml => domaincapsdata/qemu_2.5.0.x86_64.xml} (99%)
copy tests/{domaincapsschemadata/qemu_2.6.0.x86_64.xml => domaincapsdata/qemu_2.6.0-q35.x86_64.xml} (98%)
copy tests/{domaincapsschemadata/qemu_2.6.0.x86_64.xml => domaincapsdata/qemu_2.6.0-tcg.x86_64.xml} (98%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_2.6.0-virt.aarch64.xml (100%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_2.6.0.aarch64.xml (100%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_2.6.0.ppc64.xml (100%)
copy tests/{domaincapsschemadata => domaincapsdata}/qemu_2.6.0.x86_64.xml (100%)
copy tests/{domaincapsschemadata/qemu_2.6.0.x86_64.xml => domaincapsdata/qemu_2.7.0-q35.x86_64.xml} (97%)
copy tests/{domaincapsschemadata/qemu_2.6.0.x86_64.xml => domaincapsdata/qemu_2.7.0-tcg.x86_64.xml} (96%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_2.7.0.s390x.xml (100%)
rename tests/{domaincapsschemadata/qemu_2.6.0.x86_64.xml => domaincapsdata/qemu_2.7.0.x86_64.xml} (97%)
copy tests/{domaincapsschemadata/qemu_2.8.0.x86_64.xml => domaincapsdata/qemu_2.8.0-q35.x86_64.xml} (98%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_2.8.0-tcg.x86_64.xml (100%)
copy tests/{domaincapsschemadata => domaincapsdata}/qemu_2.8.0.s390x.xml (100%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_2.8.0.x86_64.xml (100%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_2.9.0-q35.x86_64.xml (100%)
copy tests/{domaincapsschemadata => domaincapsdata}/qemu_2.9.0-tcg.x86_64.xml (100%)
copy tests/{domaincapsschemadata/qemu_2.12.0.ppc64.xml => domaincapsdata/qemu_2.9.0.ppc64.xml} (98%)
rename tests/{domaincapsschemadata/qemu_2.8.0.s390x.xml => domaincapsdata/qemu_2.9.0.s390x.xml} (97%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_2.9.0.x86_64.xml (100%)
copy tests/{domaincapsschemadata/qemu_4.0.0.x86_64.xml => domaincapsdata/qemu_3.0.0-q35.x86_64.xml} (95%)
copy tests/{domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml => domaincapsdata/qemu_3.0.0-tcg.x86_64.xml} (78%)
rename tests/{domaincapsschemadata/qemu_2.12.0.ppc64.xml => domaincapsdata/qemu_3.0.0.ppc64.xml} (97%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_3.0.0.s390x.xml (100%)
copy tests/{domaincapsschemadata/qemu_4.0.0.x86_64.xml => domaincapsdata/qemu_3.0.0.x86_64.xml} (95%)
copy tests/{domaincapsschemadata/qemu_3.1.0.x86_64.xml => domaincapsdata/qemu_3.1.0-q35.x86_64.xml} (98%)
copy tests/{domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml => domaincapsdata/qemu_3.1.0-tcg.x86_64.xml} (77%)
copy tests/{domaincapsschemadata/qemu_4.2.0.ppc64.xml => domaincapsdata/qemu_3.1.0.ppc64.xml} (97%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_3.1.0.x86_64.xml (100%)
copy tests/{domaincapsschemadata/qemu_4.0.0.x86_64.xml => domaincapsdata/qemu_4.0.0-q35.x86_64.xml} (98%)
copy tests/{domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml => domaincapsdata/qemu_4.0.0-tcg.x86_64.xml} (77%)
copy tests/{domaincapsschemadata/qemu_4.2.0.aarch64.xml => domaincapsdata/qemu_4.0.0-virt.aarch64.xml} (95%)
copy tests/{domaincapsschemadata/qemu_4.2.0.aarch64.xml => domaincapsdata/qemu_4.0.0.aarch64.xml} (100%)
copy tests/{domaincapsschemadata/qemu_4.2.0.ppc64.xml => domaincapsdata/qemu_4.0.0.ppc64.xml} (98%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_4.0.0.s390x.xml (100%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_4.0.0.x86_64.xml (100%)
copy tests/{domaincapsschemadata/qemu_4.1.0.x86_64.xml => domaincapsdata/qemu_4.1.0-q35.x86_64.xml} (98%)
copy tests/{domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml => domaincapsdata/qemu_4.1.0-tcg.x86_64.xml} (75%)
copy tests/{domaincapsschemadata => domaincapsdata}/qemu_4.1.0.x86_64.xml (100%)
rename tests/{domaincapsschemadata/qemu_4.1.0.x86_64.xml => domaincapsdata/qemu_4.2.0-q35.x86_64.xml} (98%)
rename tests/{domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml => domaincapsdata/qemu_4.2.0-tcg.x86_64.xml} (75%)
copy tests/{domaincapsschemadata/qemu_4.2.0.aarch64.xml => domaincapsdata/qemu_4.2.0-virt.aarch64.xml} (95%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_4.2.0.aarch64.xml (100%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_4.2.0.ppc64.xml (100%)
rename tests/{domaincapsschemadata => domaincapsdata}/qemu_4.2.0.x86_64.xml (100%)
--
2.21.0
2
14
24 Oct '19
Converting to glib's helpers allows us to greatly simplify the error
handling from virBuffer.
Peter Krempa (19):
util: buffer: Simplify convoluted condition
util: buffer: Use 'cleanup' as label name in virBufferAddBuffer
util: buffer: Simplify escape buffer allocations
virsh: Reimplement _vshCalloc using g_malloc0_n
util: alloc: drop xalloc_oversized macro
util: buffer: Don't treat missing truncation in virBufferTrim as usage
error
util: buffer: Simplify handling of indent overflows
tests: virbuffer: Drop 'infinite loop' tests
tests: virbuffer: Remove unused test data struct
util: buffer: Split getting of effective indent out of
virBufferGetIndent
util: sysinfo: Use virXMLFormatElement and infrastructure in
virSysinfoFormat
util: virbuffer: Remove @dynamic from virBufferGetIndent
util: buffer: Properly URLencode strings
util: buffer: Encode URIs with upper case hex characters
util: buffer: Reimplement virBuffer internals using glib's GString
util: buffer: Remove error handling internals
util: buffer: Remove virBufferError
util: buffer: Remove virBufferCheckError
util: xml: Make virXMLFormatElement void
src/bhyve/bhyve_command.c | 3 -
src/bhyve/bhyve_driver.c | 5 -
src/conf/capabilities.c | 16 -
src/conf/checkpoint_conf.c | 3 -
src/conf/cpu_conf.c | 7 -
src/conf/domain_addr.c | 2 -
src/conf/domain_capabilities.c | 1 -
src/conf/domain_conf.c | 154 ++++-----
src/conf/interface_conf.c | 3 -
src/conf/network_conf.c | 5 +-
src/conf/node_device_conf.c | 3 -
src/conf/nwfilter_conf.c | 9 -
src/conf/secret_conf.c | 3 -
src/conf/snapshot_conf.c | 3 -
src/conf/storage_conf.c | 12 -
src/conf/virnetworkobj.c | 3 -
src/conf/virnetworkportdef.c | 3 -
src/conf/virnwfilterbindingdef.c | 3 -
src/conf/virnwfilterbindingobj.c | 3 -
src/conf/virsavecookie.c | 3 -
src/cpu/cpu_map.c | 2 -
src/cpu/cpu_x86.c | 10 -
src/esx/esx_driver.c | 12 -
src/esx/esx_util.c | 6 -
src/esx/esx_vi.c | 15 -
src/esx/esx_vi_methods.c | 3 -
src/hyperv/hyperv_driver.c | 3 -
src/hyperv/hyperv_wmi.c | 10 -
src/libvirt_private.syms | 3 +-
src/libxl/libxl_conf.c | 5 -
src/libxl/libxl_driver.c | 2 -
src/libxl/libxl_migration.c | 3 -
src/libxl/xen_common.c | 13 -
src/libxl/xen_xl.c | 9 -
src/libxl/xen_xm.c | 3 -
src/locking/lock_driver_sanlock.c | 3 -
src/lxc/lxc_container.c | 3 -
src/lxc/lxc_controller.c | 3 -
src/lxc/lxc_driver.c | 2 -
src/lxc/lxc_fuse.c | 4 -
src/network/bridge_driver.c | 6 -
src/node_device/node_device_udev.c | 3 -
src/nwfilter/nwfilter_ebiptables_driver.c | 8 -
src/nwfilter/nwfilter_gentech_driver.c | 6 -
src/nwfilter/nwfilter_learnipaddr.c | 5 -
src/phyp/phyp_driver.c | 4 -
src/qemu/qemu_capabilities.c | 3 +-
src/qemu/qemu_command.c | 130 --------
src/qemu/qemu_domain.c | 28 +-
src/qemu/qemu_driver.c | 2 -
src/qemu/qemu_migration_cookie.c | 3 -
src/qemu/qemu_monitor_json.c | 3 -
src/rpc/virnetlibsshsession.c | 6 -
src/rpc/virnetsocket.c | 8 -
src/rpc/virnetsshsession.c | 6 -
src/security/virt-aa-helper.c | 11 -
src/storage/storage_backend_rbd.c | 6 -
src/storage/storage_util.c | 13 -
src/util/viralloc.h | 19 --
src/util/virbitmap.c | 7 -
src/util/virbuffer.c | 361 +++++++---------------
src/util/virbuffer.h | 30 +-
src/util/vircommand.c | 11 +-
src/util/virconf.c | 6 -
src/util/virdnsmasq.c | 6 -
src/util/virfilecache.c | 3 -
src/util/virlog.c | 8 -
src/util/virnetdevopenvswitch.c | 3 -
src/util/virpidfile.c | 7 -
src/util/virqemu.c | 3 -
src/util/virresctrl.c | 4 +-
src/util/virstoragefile.c | 3 -
src/util/virstring.c | 5 -
src/util/virsysinfo.c | 24 +-
src/util/virsystemd.c | 6 -
src/util/viruri.c | 3 -
src/util/virxml.c | 19 +-
src/util/virxml.h | 5 +-
src/vmx/vmx.c | 3 -
src/vz/vz_driver.c | 5 -
tests/cputest.c | 4 -
tests/networkxml2firewalltest.c | 3 -
tests/nwfilterebiptablestest.c | 21 --
tests/nwfilterxml2firewalltest.c | 3 -
tests/qemublocktest.c | 6 -
tests/qemumonitorjsontest.c | 6 -
tests/qemumonitortestutils.c | 2 -
tests/testutils.c | 2 -
tests/testutilsqemuschema.c | 2 +-
tests/vboxsnapshotxmltest.c | 5 -
tests/virbuftest.c | 139 ++-------
tests/vircgrouptest.c | 2 -
tests/virfirewalltest.c | 30 --
tests/virkmodtest.c | 6 +-
tests/virnetdevbandwidthtest.c | 5 -
tests/virsystemdtest.c | 3 -
tests/viruritest.c | 2 +-
tools/virsh-checkpoint.c | 5 -
tools/virsh-domain-monitor.c | 6 -
tools/virsh-domain.c | 30 --
tools/virsh-pool.c | 9 -
tools/virsh-snapshot.c | 5 -
tools/virsh-volume.c | 4 -
tools/vsh.c | 33 +-
tools/vsh.h | 5 +-
105 files changed, 224 insertions(+), 1264 deletions(-)
--
2.21.0
3
39
Changes since v2:
Fix underscore in snapshot path
Use virDomainSnapshotGetDomain instead of own excessive calculations
Get rid of excessive code in tests
Appeareance polishes (fix indendation, one-line functions, typos...)
Simon Kobyda (2):
Introduce Domain Snapshot Interface
Implement snapshots APIs
data/org.libvirt.Domain.xml | 26 +++
data/org.libvirt.DomainSnapshot.xml | 41 +++++
src/connect.c | 6 +
src/connect.h | 1 +
src/domain.c | 154 ++++++++++++++++
src/domainsnapshot.c | 269 ++++++++++++++++++++++++++++
src/domainsnapshot.h | 9 +
src/meson.build | 1 +
src/util.c | 53 ++++++
src/util.h | 16 ++
tests/libvirttest.py | 12 ++
tests/meson.build | 1 +
tests/test_domain.py | 8 +
tests/test_snapshot.py | 43 +++++
tests/xmldata.py | 6 +
15 files changed, 646 insertions(+)
create mode 100644 data/org.libvirt.DomainSnapshot.xml
create mode 100644 src/domainsnapshot.c
create mode 100644 src/domainsnapshot.h
create mode 100755 tests/test_snapshot.py
--
2.21.0
2
4
Hi, Mr Jiri Denemark,
Because I can't subscribe the development of maili<https://www.redhat.com/mailman/listinfo/libvirt-users>n<https://www.redhat.com/mailman/listinfo/libvirt-users>g list<https://www.redhat.com/mailman/listinfo/libvirt-users> now, so I paste the log, I want to know
if the new CPU model be added ,who will patch the file Test CPU signatures *.sig.
cputest: Test CPU signatures
author Jiri Denemark <jdenemar(a)redhat.com>
Mon, 25 Feb 2019 09:05:34 +0000 (10:05 +0100)
committer Jiri Denemark <jdenemar(a)redhat.com>
Tue, 5 Mar 2019 13:47:49 +0000 (14:47 +0100)
commit dd08d27fc205c86961b6d957fbb92da5aead5d1b
tree 7e64a511bfaf0ec494631658ed1ccf605bd6a931 tree | snapshot
parent 61be05a00fd383f11070761fac5ae28272b784dd commit | diff
cputest: Test CPU signatures
The signature computation code is not too complicated and it will likely
never change so testing it is not very important. We do it mostly for a
nice side effect of easily accessible signature numbers for all CPU
data files.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
Reviewed-by: Ján Tomko <jtomko(a)redhat.com>
________________________________
Leo-Hou(a)hotmail.com
1
0
As preparation to switch to Meson there are some things that needs be
cleaned up to make the conversion easier.
The important thing in Meson is that there is a strict separation
between source and build directory and the distributed tarball by
default contains only files tracked by git with a possibility to
write a script which would add some other sources into the tarball.
Regardless of the adoption of Meson these patches improve our current
build system to fully support VPATH builds.
Changes in v2:
- some patches from v1 are pushed now
- added a patch to mandate build dir != src dir
- added a patch to cleanup .gitignore
- added patches to fix sc_po_check
- improved some patches from v1
Daniel P. Berrangé (1):
build: mandate use of a build dir != src dir
Pavel Hrdina (19):
.gitignore: cleanup old and obsolete ignores
syntax-check.mk: fix sc_po_check rule
syntax-check.mk: cleanup sc_po_check dependencies
syntax-check.mk: cleanup generated_files list for sc_po_check
po: generate files into build directory
po: rewrite the way how we generate files
po: detect zanata binary during configure time
remote: unify rpc server dispatch generated files
src: generate source files into build directory
src: access: generate source files into build directory
src: admin: generate source files into build directory
src: esx: generate source files into build directory
src: hyperv: generate source files into build directory
src: locking: generate source files into build directory
src: logging: generate source files into build directory
src: lxc: generate source files into build directory
src: remote: generate source files into build directory
src: stop distributing generated source files
tools: stop distributing generated source files
.gitignore | 276 ++-------------------
build-aux/syntax-check.mk | 47 ++--
configure.ac | 6 +
libvirt.spec.in | 10 +-
m4/virt-external-programs.m4 | 2 +
po/Makefile.am | 47 ++--
po/POTFILES | 320 -------------------------
po/POTFILES.in | 357 ++++++++++++++++++++++++++++
src/Makefile.am | 13 +-
src/access/Makefile.inc.am | 17 +-
src/admin/Makefile.inc.am | 24 +-
src/bhyve/Makefile.inc.am | 1 +
src/esx/Makefile.inc.am | 9 +-
src/esx/esx_vi_generator.py | 11 +-
src/hyperv/Makefile.inc.am | 9 +-
src/hyperv/hyperv_wmi_generator.py | 11 +-
src/interface/Makefile.inc.am | 2 +
src/libxl/Makefile.inc.am | 2 +
src/locking/Makefile.inc.am | 16 +-
src/logging/Makefile.inc.am | 18 +-
src/lxc/Makefile.inc.am | 36 ++-
src/network/Makefile.inc.am | 2 +
src/node_device/Makefile.inc.am | 2 +
src/nwfilter/Makefile.inc.am | 2 +
src/qemu/Makefile.inc.am | 2 +
src/remote/Makefile.inc.am | 45 ++--
src/remote/remote_daemon_dispatch.c | 4 +-
src/rpc/Makefile.inc.am | 8 +-
src/secret/Makefile.inc.am | 2 +
src/storage/Makefile.inc.am | 2 +
src/util/Makefile.inc.am | 6 +-
src/vbox/Makefile.inc.am | 1 +
src/vz/Makefile.inc.am | 1 +
tests/Makefile.am | 4 +
tools/Makefile.am | 1 -
35 files changed, 606 insertions(+), 710 deletions(-)
delete mode 100644 po/POTFILES
create mode 100644 po/POTFILES.in
--
2.21.0
2
22
Libtool gets a wrong order of arguments of libraries to install and it
fails when installing libvirt-admin.so that libvirt.so is not yet
installed. Caused by commit <3097282d8668693eb4b7c3fb1b4fe5b474996b9c>.
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
src/Makefile.am | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index 34dfeeb9f9..ebc24610e2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -100,6 +100,10 @@ COMMON_UNIT_VARS = \
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
$(NULL)
+# Set these variables before we include any of the subdirs as libvirt-admin.la
+# has to be installed after libvirt.la.
+lib_LTLIBRARIES += libvirt.la libvirt-qemu.la libvirt-lxc.la
+
include util/Makefile.inc.am
include conf/Makefile.inc.am
include cpu/Makefile.inc.am
@@ -146,8 +150,6 @@ SECDRIVER_LIBS += $(APPARMOR_LIBS)
endif WITH_SECDRIVER_APPARMOR
-lib_LTLIBRARIES += libvirt.la libvirt-qemu.la libvirt-lxc.la
-
moddir = $(libdir)/libvirt/connection-driver
confdir = $(sysconfdir)/libvirt
--
2.21.0
2
1
In few places we have the following code pattern:
int ret;
... /* @ret is not accessed here */
ret = f(...);
return ret;
This pattern can be written less verbose:
...
return f(...);
This patch was generated with following coccinelle spatch:
@@
type T;
constant C;
expression f;
identifier ret;
@@
-T ret = C;
... when != ret
-ret = f;
-return ret;
+return f;
Afterwards I needed to fix a few places, e.g. comment in
virDomainNetIPParseXML() was removed too because coccinelle
thinks it refers to @ret while in fact it doesn't. Also in few
places it replaced @ret declaration with a few spaces instead of
removing the line. But nothing terribly wrong.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/bhyve/bhyve_driver.c | 38 +++++++++---------------
src/conf/checkpoint_conf.c | 5 +---
src/conf/domain_conf.c | 12 ++------
src/conf/snapshot_conf.c | 5 +---
src/conf/storage_conf.c | 17 ++++-------
src/conf/virnwfilterbindingobj.c | 5 +---
src/libvirt-stream.c | 7 ++---
src/libxl/libxl_driver.c | 36 ++++++++---------------
src/lxc/lxc_driver.c | 36 ++++++++---------------
src/lxc/lxc_native.c | 5 +---
src/network/bridge_driver.c | 38 +++++++-----------------
src/nwfilter/nwfilter_driver.c | 10 ++-----
src/phyp/phyp_driver.c | 5 +---
src/qemu/qemu_command.c | 19 ++++--------
src/qemu/qemu_driver.c | 19 ++++--------
src/qemu/qemu_firmware.c | 4 +--
src/qemu/qemu_monitor_json.c | 4 +--
src/qemu/qemu_process.c | 16 ++++------
src/qemu/qemu_vhost_user.c | 4 +--
src/remote/remote_daemon_dispatch.c | 5 +---
src/storage/storage_backend_iscsi.c | 5 +---
src/test/test_driver.c | 34 ++++++----------------
src/util/vircgroupv1.c | 6 +---
src/util/vircgroupv2.c | 6 +---
src/util/virdbus.c | 5 +---
src/util/virjson.c | 5 +---
src/util/virmdev.c | 5 +---
src/util/virscsi.c | 4 +--
src/util/virscsivhost.c | 5 +---
src/util/virstoragefile.c | 23 ++++-----------
src/vbox/vbox_storage.c | 18 ++++--------
src/vz/vz_driver.c | 45 ++++++++++-------------------
tests/qemuxml2argvmock.c | 5 +---
tests/virstoragetest.c | 4 +--
tools/virsh-completer-domain.c | 20 ++++---------
tools/virsh-completer-host.c | 8 ++---
tools/virsh-completer-nodedev.c | 4 +--
tools/virsh-completer-pool.c | 4 +--
tools/virsh-completer-secret.c | 4 +--
tools/virsh-network.c | 5 +---
tools/vsh.c | 5 +---
41 files changed, 143 insertions(+), 367 deletions(-)
diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c
index e3d984f69a..a2c8185c45 100644
--- a/src/bhyve/bhyve_driver.c
+++ b/src/bhyve/bhyve_driver.c
@@ -630,30 +630,24 @@ static int
bhyveConnectListDomains(virConnectPtr conn, int *ids, int maxids)
{
bhyveConnPtr privconn = conn->privateData;
- int n;
if (virConnectListDomainsEnsureACL(conn) < 0)
return -1;
- n = virDomainObjListGetActiveIDs(privconn->domains, ids, maxids,
- virConnectListDomainsCheckACL, conn);
-
- return n;
+ return virDomainObjListGetActiveIDs(privconn->domains, ids, maxids,
+ virConnectListDomainsCheckACL, conn);
}
static int
bhyveConnectNumOfDomains(virConnectPtr conn)
{
bhyveConnPtr privconn = conn->privateData;
- int count;
if (virConnectNumOfDomainsEnsureACL(conn) < 0)
return -1;
- count = virDomainObjListNumOfDomains(privconn->domains, true,
- virConnectNumOfDomainsCheckACL, conn);
-
- return count;
+ return virDomainObjListNumOfDomains(privconn->domains, true,
+ virConnectNumOfDomainsCheckACL, conn);
}
static int
@@ -661,31 +655,28 @@ bhyveConnectListDefinedDomains(virConnectPtr conn, char **const names,
int maxnames)
{
bhyveConnPtr privconn = conn->privateData;
- int n;
if (virConnectListDefinedDomainsEnsureACL(conn) < 0)
return -1;
memset(names, 0, sizeof(*names) * maxnames);
- n = virDomainObjListGetInactiveNames(privconn->domains, names,
- maxnames, virConnectListDefinedDomainsCheckACL, conn);
-
- return n;
+ return virDomainObjListGetInactiveNames(privconn->domains, names,
+ maxnames,
+ virConnectListDefinedDomainsCheckACL,
+ conn);
}
static int
bhyveConnectNumOfDefinedDomains(virConnectPtr conn)
{
bhyveConnPtr privconn = conn->privateData;
- int count;
if (virConnectNumOfDefinedDomainsEnsureACL(conn) < 0)
return -1;
- count = virDomainObjListNumOfDomains(privconn->domains, false,
- virConnectNumOfDefinedDomainsCheckACL, conn);
-
- return count;
+ return virDomainObjListNumOfDomains(privconn->domains, false,
+ virConnectNumOfDefinedDomainsCheckACL,
+ conn);
}
static char *
@@ -771,17 +762,14 @@ bhyveConnectListAllDomains(virConnectPtr conn,
unsigned int flags)
{
bhyveConnPtr privconn = conn->privateData;
- int ret = -1;
virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1);
if (virConnectListAllDomainsEnsureACL(conn) < 0)
return -1;
- ret = virDomainObjListExport(privconn->domains, conn, domains,
- virConnectListAllDomainsCheckACL, flags);
-
- return ret;
+ return virDomainObjListExport(privconn->domains, conn, domains,
+ virConnectListAllDomainsCheckACL, flags);
}
static virDomainPtr
diff --git a/src/conf/checkpoint_conf.c b/src/conf/checkpoint_conf.c
index 4fa743e0b0..90cb565d70 100644
--- a/src/conf/checkpoint_conf.c
+++ b/src/conf/checkpoint_conf.c
@@ -73,13 +73,10 @@ virDomainCheckpointDiskDefClear(virDomainCheckpointDiskDefPtr disk)
virDomainCheckpointDefPtr
virDomainCheckpointDefNew(void)
{
- virDomainCheckpointDefPtr def;
-
if (virDomainCheckpointInitialize() < 0)
return NULL;
- def = virObjectNew(virDomainCheckpointDefClass);
- return def;
+ return virObjectNew(virDomainCheckpointDefClass);
}
static void
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 9ee9b44a5e..6aeef3e5c5 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -8322,7 +8322,6 @@ static virNetDevIPAddrPtr
virDomainNetIPParseXML(xmlNodePtr node)
{
/* Parse the prefix in every case */
- virNetDevIPAddrPtr ret = NULL;
unsigned int prefixValue = 0;
int family = AF_UNSPEC;
g_autofree virNetDevIPAddrPtr ip = NULL;
@@ -8374,8 +8373,7 @@ virDomainNetIPParseXML(xmlNodePtr node)
return NULL;
}
- ret = g_steal_pointer(&ip);
- return ret;
+ return g_steal_pointer(&ip);
}
@@ -9239,7 +9237,6 @@ virDomainStorageSourceParseBase(const char *type,
const char *index)
{
g_autoptr(virStorageSource) src = NULL;
- virStorageSourcePtr ret = NULL;
if (!(src = virStorageSourceNew()))
return NULL;
@@ -9267,8 +9264,7 @@ virDomainStorageSourceParseBase(const char *type,
return NULL;
}
- ret = g_steal_pointer(&src);
- return ret;
+ return g_steal_pointer(&src);
}
@@ -18368,7 +18364,6 @@ virDomainIOThreadPinDefParseXML(xmlNodePtr node,
static virBitmapPtr
virDomainEmulatorPinDefParseXML(xmlNodePtr node)
{
- virBitmapPtr ret = NULL;
g_autofree char *tmp = NULL;
g_autoptr(virBitmap) def = NULL;
@@ -18387,8 +18382,7 @@ virDomainEmulatorPinDefParseXML(xmlNodePtr node)
return NULL;
}
- ret = g_steal_pointer(&def);
- return ret;
+ return g_steal_pointer(&def);
}
diff --git a/src/conf/snapshot_conf.c b/src/conf/snapshot_conf.c
index f9fbca3c07..9f08965aab 100644
--- a/src/conf/snapshot_conf.c
+++ b/src/conf/snapshot_conf.c
@@ -113,13 +113,10 @@ virDomainSnapshotDiskDefFree(virDomainSnapshotDiskDefPtr disk)
virDomainSnapshotDefPtr
virDomainSnapshotDefNew(void)
{
- virDomainSnapshotDefPtr def;
-
if (virDomainSnapshotInitialize() < 0)
return NULL;
- def = virObjectNew(virDomainSnapshotDefClass);
- return def;
+ return virObjectNew(virDomainSnapshotDefClass);
}
static void
diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
index f212eefe25..d493109b7d 100644
--- a/src/conf/storage_conf.c
+++ b/src/conf/storage_conf.c
@@ -846,7 +846,6 @@ virStoragePoolDefPtr
virStoragePoolDefParseXML(xmlXPathContextPtr ctxt)
{
virStoragePoolOptionsPtr options;
- virStoragePoolDefPtr ret = NULL;
xmlNodePtr source_node;
g_autoptr(virStoragePoolDef) def = NULL;
g_autofree char *type = NULL;
@@ -995,8 +994,7 @@ virStoragePoolDefParseXML(xmlXPathContextPtr ctxt)
return NULL;
}
- ret = g_steal_pointer(&def);
- return ret;
+ return g_steal_pointer(&def);
}
@@ -1270,7 +1268,6 @@ virStorageVolDefParseXML(virStoragePoolDefPtr pool,
xmlXPathContextPtr ctxt,
unsigned int flags)
{
- virStorageVolDefPtr ret = NULL;
virStorageVolOptionsPtr options;
xmlNodePtr node;
size_t i;
@@ -1430,8 +1427,7 @@ virStorageVolDefParseXML(virStoragePoolDefPtr pool,
VIR_FREE(nodes);
}
- ret = g_steal_pointer(&def);
- return ret;
+ return g_steal_pointer(&def);
}
@@ -1689,14 +1685,11 @@ virStoragePoolSaveXML(const char *path,
const char *xml)
{
char uuidstr[VIR_UUID_STRING_BUFLEN];
- int ret = -1;
virUUIDFormat(def->uuid, uuidstr);
- ret = virXMLSaveFile(path,
- virXMLPickShellSafeComment(def->name, uuidstr),
- "pool-edit", xml);
-
- return ret;
+ return virXMLSaveFile(path,
+ virXMLPickShellSafeComment(def->name, uuidstr),
+ "pool-edit", xml);
}
diff --git a/src/conf/virnwfilterbindingobj.c b/src/conf/virnwfilterbindingobj.c
index 48d53fafb1..24aafa99c3 100644
--- a/src/conf/virnwfilterbindingobj.c
+++ b/src/conf/virnwfilterbindingobj.c
@@ -91,10 +91,7 @@ virNWFilterBindingObjSetDef(virNWFilterBindingObjPtr obj,
virNWFilterBindingDefPtr
virNWFilterBindingObjStealDef(virNWFilterBindingObjPtr obj)
{
- virNWFilterBindingDefPtr def;
-
- def = g_steal_pointer(&obj->def);
- return def;
+ return g_steal_pointer(&obj->def);
}
diff --git a/src/libvirt-stream.c b/src/libvirt-stream.c
index fb646d0aef..6f6bb5df0b 100644
--- a/src/libvirt-stream.c
+++ b/src/libvirt-stream.c
@@ -520,11 +520,8 @@ virStreamInData(virStreamPtr stream,
virCheckNonNullArgReturn(data, -1);
virCheckNonNullArgReturn(length, -1);
- if (stream->driver->streamInData) {
- int ret;
- ret = (stream->driver->streamInData)(stream, data, length);
- return ret;
- }
+ if (stream->driver->streamInData)
+ return (stream->driver->streamInData)(stream, data, length);
virReportUnsupportedError();
return -1;
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 5cc6b87b8c..c0e070d214 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -1009,30 +1009,24 @@ static int
libxlConnectListDomains(virConnectPtr conn, int *ids, int nids)
{
libxlDriverPrivatePtr driver = conn->privateData;
- int n;
if (virConnectListDomainsEnsureACL(conn) < 0)
return -1;
- n = virDomainObjListGetActiveIDs(driver->domains, ids, nids,
- virConnectListDomainsCheckACL, conn);
-
- return n;
+ return virDomainObjListGetActiveIDs(driver->domains, ids, nids,
+ virConnectListDomainsCheckACL, conn);
}
static int
libxlConnectNumOfDomains(virConnectPtr conn)
{
libxlDriverPrivatePtr driver = conn->privateData;
- int n;
if (virConnectNumOfDomainsEnsureACL(conn) < 0)
return -1;
- n = virDomainObjListNumOfDomains(driver->domains, true,
- virConnectNumOfDomainsCheckACL, conn);
-
- return n;
+ return virDomainObjListNumOfDomains(driver->domains, true,
+ virConnectNumOfDomainsCheckACL, conn);
}
static virDomainPtr
@@ -2776,29 +2770,26 @@ libxlConnectListDefinedDomains(virConnectPtr conn,
char **const names, int nnames)
{
libxlDriverPrivatePtr driver = conn->privateData;
- int n;
if (virConnectListDefinedDomainsEnsureACL(conn) < 0)
return -1;
- n = virDomainObjListGetInactiveNames(driver->domains, names, nnames,
- virConnectListDefinedDomainsCheckACL, conn);
- return n;
+ return virDomainObjListGetInactiveNames(driver->domains, names, nnames,
+ virConnectListDefinedDomainsCheckACL,
+ conn);
}
static int
libxlConnectNumOfDefinedDomains(virConnectPtr conn)
{
libxlDriverPrivatePtr driver = conn->privateData;
- int n;
if (virConnectNumOfDefinedDomainsEnsureACL(conn) < 0)
return -1;
- n = virDomainObjListNumOfDomains(driver->domains, false,
- virConnectNumOfDefinedDomainsCheckACL,
- conn);
- return n;
+ return virDomainObjListNumOfDomains(driver->domains, false,
+ virConnectNumOfDefinedDomainsCheckACL,
+ conn);
}
static int
@@ -5715,17 +5706,14 @@ libxlConnectListAllDomains(virConnectPtr conn,
unsigned int flags)
{
libxlDriverPrivatePtr driver = conn->privateData;
- int ret = -1;
virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1);
if (virConnectListAllDomainsEnsureACL(conn) < 0)
return -1;
- ret = virDomainObjListExport(driver->domains, conn, domains,
- virConnectListAllDomainsCheckACL, flags);
-
- return ret;
+ return virDomainObjListExport(driver->domains, conn, domains,
+ virConnectListAllDomainsCheckACL, flags);
}
/* Which features are supported by this driver? */
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index 41a6a446bd..75c8c030c5 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -348,59 +348,49 @@ static int lxcDomainIsUpdated(virDomainPtr dom)
static int lxcConnectListDomains(virConnectPtr conn, int *ids, int nids)
{
virLXCDriverPtr driver = conn->privateData;
- int n;
if (virConnectListDomainsEnsureACL(conn) < 0)
return -1;
- n = virDomainObjListGetActiveIDs(driver->domains, ids, nids,
- virConnectListDomainsCheckACL, conn);
-
- return n;
+ return virDomainObjListGetActiveIDs(driver->domains, ids, nids,
+ virConnectListDomainsCheckACL, conn);
}
static int lxcConnectNumOfDomains(virConnectPtr conn)
{
virLXCDriverPtr driver = conn->privateData;
- int n;
if (virConnectNumOfDomainsEnsureACL(conn) < 0)
return -1;
- n = virDomainObjListNumOfDomains(driver->domains, true,
- virConnectNumOfDomainsCheckACL, conn);
-
- return n;
+ return virDomainObjListNumOfDomains(driver->domains, true,
+ virConnectNumOfDomainsCheckACL, conn);
}
static int lxcConnectListDefinedDomains(virConnectPtr conn,
char **const names, int nnames)
{
virLXCDriverPtr driver = conn->privateData;
- int n;
if (virConnectListDefinedDomainsEnsureACL(conn) < 0)
return -1;
- n = virDomainObjListGetInactiveNames(driver->domains, names, nnames,
- virConnectListDefinedDomainsCheckACL, conn);
-
- return n;
+ return virDomainObjListGetInactiveNames(driver->domains, names, nnames,
+ virConnectListDefinedDomainsCheckACL,
+ conn);
}
static int lxcConnectNumOfDefinedDomains(virConnectPtr conn)
{
virLXCDriverPtr driver = conn->privateData;
- int n;
if (virConnectNumOfDefinedDomainsEnsureACL(conn) < 0)
return -1;
- n = virDomainObjListNumOfDomains(driver->domains, false,
- virConnectNumOfDefinedDomainsCheckACL, conn);
-
- return n;
+ return virDomainObjListNumOfDomains(driver->domains, false,
+ virConnectNumOfDefinedDomainsCheckACL,
+ conn);
}
@@ -3254,16 +3244,14 @@ lxcConnectListAllDomains(virConnectPtr conn,
unsigned int flags)
{
virLXCDriverPtr driver = conn->privateData;
- int ret = -1;
virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1);
if (virConnectListAllDomainsEnsureACL(conn) < 0)
return -1;
- ret = virDomainObjListExport(driver->domains, conn, domains,
- virConnectListAllDomainsCheckACL, flags);
- return ret;
+ return virDomainObjListExport(driver->domains, conn, domains,
+ virConnectListAllDomainsCheckACL, flags);
}
diff --git a/src/lxc/lxc_native.c b/src/lxc/lxc_native.c
index 5df09a849e..fec3b4454c 100644
--- a/src/lxc/lxc_native.c
+++ b/src/lxc/lxc_native.c
@@ -703,7 +703,6 @@ static int
lxcConvertNetworkSettings(virDomainDefPtr def, virConfPtr properties)
{
int status;
- int result = -1;
size_t i;
lxcNetworkParseData data = {def, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, 0,
@@ -727,9 +726,7 @@ lxcConvertNetworkSettings(virDomainDefPtr def, virConfPtr properties)
/* When no network type is provided LXC only adds loopback */
def->features[VIR_DOMAIN_FEATURE_PRIVNET] = VIR_TRISTATE_SWITCH_ON;
}
- result = 0;
-
- return result;
+ return 0;
error:
for (i = 0; i < data.nips; i++)
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index fcaa6a48ae..5c212a2969 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -3128,17 +3128,13 @@ static int
networkConnectNumOfNetworks(virConnectPtr conn)
{
virNetworkDriverStatePtr driver = networkGetDriver();
- int nactive;
if (virConnectNumOfNetworksEnsureACL(conn) < 0)
return -1;
- nactive = virNetworkObjListNumOfNetworks(driver->networks,
- true,
- virConnectNumOfNetworksCheckACL,
- conn);
-
- return nactive;
+ return virNetworkObjListNumOfNetworks(driver->networks, true,
+ virConnectNumOfNetworksCheckACL,
+ conn);
}
@@ -3148,17 +3144,12 @@ networkConnectListNetworks(virConnectPtr conn,
int maxnames)
{
virNetworkDriverStatePtr driver = networkGetDriver();
- int got = 0;
if (virConnectListNetworksEnsureACL(conn) < 0)
return -1;
- got = virNetworkObjListGetNames(driver->networks,
- true, names, maxnames,
- virConnectListNetworksCheckACL,
- conn);
-
- return got;
+ return virNetworkObjListGetNames(driver->networks, true, names, maxnames,
+ virConnectListNetworksCheckACL, conn);
}
@@ -3166,17 +3157,13 @@ static int
networkConnectNumOfDefinedNetworks(virConnectPtr conn)
{
virNetworkDriverStatePtr driver = networkGetDriver();
- int ninactive = 0;
if (virConnectNumOfDefinedNetworksEnsureACL(conn) < 0)
return -1;
- ninactive = virNetworkObjListNumOfNetworks(driver->networks,
- false,
- virConnectNumOfDefinedNetworksCheckACL,
- conn);
-
- return ninactive;
+ return virNetworkObjListNumOfNetworks(driver->networks, false,
+ virConnectNumOfDefinedNetworksCheckACL,
+ conn);
}
@@ -3186,16 +3173,13 @@ networkConnectListDefinedNetworks(virConnectPtr conn,
int maxnames)
{
virNetworkDriverStatePtr driver = networkGetDriver();
- int got = 0;
if (virConnectListDefinedNetworksEnsureACL(conn) < 0)
return -1;
- got = virNetworkObjListGetNames(driver->networks,
- false, names, maxnames,
- virConnectListDefinedNetworksCheckACL,
- conn);
- return got;
+ return virNetworkObjListGetNames(driver->networks, false, names, maxnames,
+ virConnectListDefinedNetworksCheckACL,
+ conn);
}
diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c
index 41e0a1d5d9..cc3ce98cc5 100644
--- a/src/nwfilter/nwfilter_driver.c
+++ b/src/nwfilter/nwfilter_driver.c
@@ -704,19 +704,13 @@ nwfilterConnectListAllNWFilterBindings(virConnectPtr conn,
virNWFilterBindingPtr **bindings,
unsigned int flags)
{
- int ret;
-
virCheckFlags(0, -1);
if (virConnectListAllNWFilterBindingsEnsureACL(conn) < 0)
return -1;
- ret = virNWFilterBindingObjListExport(driver->bindings,
- conn,
- bindings,
- virConnectListAllNWFilterBindingsCheckACL);
-
- return ret;
+ return virNWFilterBindingObjListExport(driver->bindings, conn, bindings,
+ virConnectListAllNWFilterBindingsCheckACL);
}
diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c
index 8b1d804233..7fe7745279 100644
--- a/src/phyp/phyp_driver.c
+++ b/src/phyp/phyp_driver.c
@@ -3165,7 +3165,6 @@ phypDomainLookupByName(virConnectPtr conn, const char *lpar_name)
{
phyp_driverPtr phyp_driver = conn->privateData;
LIBSSH2_SESSION *session = phyp_driver->session;
- virDomainPtr dom = NULL;
int lpar_id = 0;
char *managed_system = phyp_driver->managed_system;
unsigned char lpar_uuid[VIR_UUID_BUFLEN];
@@ -3177,9 +3176,7 @@ phypDomainLookupByName(virConnectPtr conn, const char *lpar_name)
if (phypGetLparUUID(lpar_uuid, lpar_id, conn) == -1)
return NULL;
- dom = virGetDomain(conn, lpar_name, lpar_uuid, lpar_id);
-
- return dom;
+ return virGetDomain(conn, lpar_name, lpar_uuid, lpar_id);
}
static virDomainPtr
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 0160507737..4358734279 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -698,20 +698,16 @@ int
qemuBuildSecretInfoProps(qemuDomainSecretInfoPtr secinfo,
virJSONValuePtr *propsret)
{
- int ret = -1;
g_autofree char *keyid = NULL;
if (!(keyid = qemuDomainGetMasterKeyAlias()))
return -1;
- ret = qemuMonitorCreateObjectProps(propsret,
- "secret", secinfo->s.aes.alias,
- "s:data", secinfo->s.aes.ciphertext,
- "s:keyid", keyid,
- "s:iv", secinfo->s.aes.iv,
- "s:format", "base64", NULL);
-
- return ret;
+ return qemuMonitorCreateObjectProps(propsret, "secret",
+ secinfo->s.aes.alias, "s:data",
+ secinfo->s.aes.ciphertext, "s:keyid",
+ keyid, "s:iv", secinfo->s.aes.iv,
+ "s:format", "base64", NULL);
}
@@ -10743,7 +10739,6 @@ qemuBuildStorageSourceAttachPrepareDrive(virDomainDiskDefPtr disk,
virQEMUCapsPtr qemuCaps)
{
g_autoptr(qemuBlockStorageSourceAttachData) data = NULL;
- qemuBlockStorageSourceAttachDataPtr ret = NULL;
if (VIR_ALLOC(data) < 0)
return NULL;
@@ -10752,9 +10747,7 @@ qemuBuildStorageSourceAttachPrepareDrive(virDomainDiskDefPtr disk,
!(data->driveAlias = qemuAliasDiskDriveFromDisk(disk)))
return NULL;
- ret = g_steal_pointer(&data);
-
- return ret;
+ return g_steal_pointer(&data);
}
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index af8cbf40f4..33a8c53d24 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -1711,29 +1711,23 @@ static char *qemuConnectGetHostname(virConnectPtr conn)
static int qemuConnectListDomains(virConnectPtr conn, int *ids, int nids)
{
virQEMUDriverPtr driver = conn->privateData;
- int n;
if (virConnectListDomainsEnsureACL(conn) < 0)
return -1;
- n = virDomainObjListGetActiveIDs(driver->domains, ids, nids,
- virConnectListDomainsCheckACL, conn);
-
- return n;
+ return virDomainObjListGetActiveIDs(driver->domains, ids, nids,
+ virConnectListDomainsCheckACL, conn);
}
static int qemuConnectNumOfDomains(virConnectPtr conn)
{
virQEMUDriverPtr driver = conn->privateData;
- int n;
if (virConnectNumOfDomainsEnsureACL(conn) < 0)
return -1;
- n = virDomainObjListNumOfDomains(driver->domains, true,
- virConnectNumOfDomainsCheckACL, conn);
-
- return n;
+ return virDomainObjListNumOfDomains(driver->domains, true,
+ virConnectNumOfDomainsCheckACL, conn);
}
@@ -4079,7 +4073,6 @@ static char *
getAutoDumpPath(virQEMUDriverPtr driver,
virDomainObjPtr vm)
{
- char *dumpfile = NULL;
g_autofree char *domname = virDomainDefGetShortName(vm->def);
char timestr[100];
struct tm time_info;
@@ -4094,9 +4087,7 @@ getAutoDumpPath(virQEMUDriverPtr driver,
localtime_r(&curtime, &time_info);
strftime(timestr, sizeof(timestr), "%Y-%m-%d-%H:%M:%S", &time_info);
- dumpfile = g_strdup_printf("%s/%s-%s", cfg->autoDumpPath, domname, timestr);
-
- return dumpfile;
+ return g_strdup_printf("%s/%s-%s", cfg->autoDumpPath, domname, timestr);
}
static void
diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c
index 670662fd4b..be4a10689e 100644
--- a/src/qemu/qemu_firmware.c
+++ b/src/qemu/qemu_firmware.c
@@ -616,7 +616,6 @@ qemuFirmwareParse(const char *path)
g_autofree char *cont = NULL;
g_autoptr(virJSONValue) doc = NULL;
g_autoptr(qemuFirmware) fw = NULL;
- qemuFirmwarePtr ret = NULL;
if (virFileReadAll(path, DOCUMENT_SIZE, &cont) < 0)
return NULL;
@@ -643,8 +642,7 @@ qemuFirmwareParse(const char *path)
if (qemuFirmwareFeatureParse(path, doc, fw) < 0)
return NULL;
- ret = g_steal_pointer(&fw);
- return ret;
+ return g_steal_pointer(&fw);
}
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 99f55c420a..4bdc4d5569 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -9325,7 +9325,6 @@ qemuMonitorJSONGetJobInfoOne(virJSONValuePtr data)
const char *errmsg = virJSONValueObjectGetString(data, "error");
int tmp;
g_autoptr(qemuMonitorJobInfo) job = NULL;
- qemuMonitorJobInfoPtr ret = NULL;
if (VIR_ALLOC(job) < 0)
return NULL;
@@ -9343,8 +9342,7 @@ qemuMonitorJSONGetJobInfoOne(virJSONValuePtr data)
job->id = g_strdup(id);
job->error = g_strdup(errmsg);
- ret = g_steal_pointer(&job);
- return ret;
+ return g_steal_pointer(&job);
}
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 7e0dc26658..ed8666e9d1 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -7304,8 +7304,6 @@ qemuProcessCreatePretendCmd(virQEMUDriverPtr driver,
int
qemuProcessKill(virDomainObjPtr vm, unsigned int flags)
{
- int ret;
-
VIR_DEBUG("vm=%p name=%s pid=%lld flags=0x%x",
vm, vm->def->name,
(long long)vm->pid, flags);
@@ -7326,11 +7324,9 @@ qemuProcessKill(virDomainObjPtr vm, unsigned int flags)
/* Request an extra delay of two seconds per current nhostdevs
* to be safe against stalls by the kernel freeing up the resources */
- ret = virProcessKillPainfullyDelay(vm->pid,
- !!(flags & VIR_QEMU_PROCESS_KILL_FORCE),
- vm->def->nhostdevs * 2);
-
- return ret;
+ return virProcessKillPainfullyDelay(vm->pid,
+ !!(flags & VIR_QEMU_PROCESS_KILL_FORCE),
+ vm->def->nhostdevs * 2);
}
@@ -7752,11 +7748,9 @@ int qemuProcessAutoDestroyAdd(virQEMUDriverPtr driver,
int qemuProcessAutoDestroyRemove(virQEMUDriverPtr driver,
virDomainObjPtr vm)
{
- int ret;
VIR_DEBUG("vm=%s", vm->def->name);
- ret = virCloseCallbacksUnset(driver->closeCallbacks, vm,
- qemuProcessAutoDestroy);
- return ret;
+ return virCloseCallbacksUnset(driver->closeCallbacks, vm,
+ qemuProcessAutoDestroy);
}
bool qemuProcessAutoDestroyActive(virQEMUDriverPtr driver,
diff --git a/src/qemu/qemu_vhost_user.c b/src/qemu/qemu_vhost_user.c
index 789d29ce43..4c25b30664 100644
--- a/src/qemu/qemu_vhost_user.c
+++ b/src/qemu/qemu_vhost_user.c
@@ -184,7 +184,6 @@ qemuVhostUserParse(const char *path)
g_autofree char *cont = NULL;
g_autoptr(virJSONValue) doc = NULL;
g_autoptr(qemuVhostUser) vu = NULL;
- qemuVhostUserPtr ret = NULL;
if (virFileReadAll(path, DOCUMENT_SIZE, &cont) < 0)
return NULL;
@@ -205,8 +204,7 @@ qemuVhostUserParse(const char *path)
if (qemuVhostUserBinaryParse(path, doc, vu) < 0)
return NULL;
- ret = g_steal_pointer(&vu);
- return ret;
+ return g_steal_pointer(&vu);
}
diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon_dispatch.c
index 203aeff8c3..40d97e944a 100644
--- a/src/remote/remote_daemon_dispatch.c
+++ b/src/remote/remote_daemon_dispatch.c
@@ -7492,10 +7492,7 @@ get_nonnull_storage_pool(virConnectPtr conn, remote_nonnull_storage_pool pool)
static virStorageVolPtr
get_nonnull_storage_vol(virConnectPtr conn, remote_nonnull_storage_vol vol)
{
- virStorageVolPtr ret;
- ret = virGetStorageVol(conn, vol.pool, vol.name, vol.key,
- NULL, NULL);
- return ret;
+ return virGetStorageVol(conn, vol.pool, vol.name, vol.key, NULL, NULL);
}
static virSecretPtr
diff --git a/src/storage/storage_backend_iscsi.c b/src/storage/storage_backend_iscsi.c
index b11d1d6622..c754b5958c 100644
--- a/src/storage/storage_backend_iscsi.c
+++ b/src/storage/storage_backend_iscsi.c
@@ -227,7 +227,6 @@ virStorageBackendISCSICheckPool(virStoragePoolObjPtr pool,
bool *isActive)
{
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
- int ret = -1;
g_autofree char *session = NULL;
*isActive = false;
@@ -253,9 +252,7 @@ virStorageBackendISCSICheckPool(virStoragePoolObjPtr pool,
if ((session = virStorageBackendISCSISession(pool, true)))
*isActive = true;
- ret = 0;
-
- return ret;
+ return 0;
}
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index e00a65d8bb..79320e6093 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -4880,14 +4880,10 @@ testDomainGetPerfEvents(virDomainPtr dom,
static char *testDomainGetSchedulerType(virDomainPtr domain G_GNUC_UNUSED,
int *nparams)
{
- char *type = NULL;
-
if (nparams)
*nparams = 1;
- type = g_strdup("fair");
-
- return type;
+ return g_strdup("fair");
}
static int
@@ -5264,11 +5260,8 @@ static int
testConnectNumOfNetworks(virConnectPtr conn)
{
testDriverPtr privconn = conn->privateData;
- int numActive;
-
- numActive = virNetworkObjListNumOfNetworks(privconn->networks,
- true, NULL, conn);
- return numActive;
+ return virNetworkObjListNumOfNetworks(privconn->networks, true, NULL,
+ conn);
}
@@ -5278,11 +5271,8 @@ testConnectListNetworks(virConnectPtr conn,
int maxnames)
{
testDriverPtr privconn = conn->privateData;
- int n;
-
- n = virNetworkObjListGetNames(privconn->networks,
- true, names, maxnames, NULL, conn);
- return n;
+ return virNetworkObjListGetNames(privconn->networks, true, names,
+ maxnames, NULL, conn);
}
@@ -5290,11 +5280,8 @@ static int
testConnectNumOfDefinedNetworks(virConnectPtr conn)
{
testDriverPtr privconn = conn->privateData;
- int numInactive;
-
- numInactive = virNetworkObjListNumOfNetworks(privconn->networks,
- false, NULL, conn);
- return numInactive;
+ return virNetworkObjListNumOfNetworks(privconn->networks, false, NULL,
+ conn);
}
@@ -5304,11 +5291,8 @@ testConnectListDefinedNetworks(virConnectPtr conn,
int maxnames)
{
testDriverPtr privconn = conn->privateData;
- int n;
-
- n = virNetworkObjListGetNames(privconn->networks,
- false, names, maxnames, NULL, conn);
- return n;
+ return virNetworkObjListGetNames(privconn->networks, false, names,
+ maxnames, NULL, conn);
}
diff --git a/src/util/vircgroupv1.c b/src/util/vircgroupv1.c
index 0820c5d638..3f10d8d127 100644
--- a/src/util/vircgroupv1.c
+++ b/src/util/vircgroupv1.c
@@ -401,11 +401,7 @@ virCgroupV1ValidatePlacement(virCgroupPtr group,
static char *
virCgroupV1StealPlacement(virCgroupPtr group)
{
- char *ret = NULL;
-
- ret = g_steal_pointer(&group->legacy[VIR_CGROUP_CONTROLLER_SYSTEMD].placement);
-
- return ret;
+ return g_steal_pointer(&group->legacy[VIR_CGROUP_CONTROLLER_SYSTEMD].placement);
}
diff --git a/src/util/vircgroupv2.c b/src/util/vircgroupv2.c
index e976a8d241..e0362990ab 100644
--- a/src/util/vircgroupv2.c
+++ b/src/util/vircgroupv2.c
@@ -243,11 +243,7 @@ virCgroupV2ValidatePlacement(virCgroupPtr group,
static char *
virCgroupV2StealPlacement(virCgroupPtr group)
{
- char *ret;
-
- ret = g_steal_pointer(&group->unified.placement);
-
- return ret;
+ return g_steal_pointer(&group->unified.placement);
}
diff --git a/src/util/virdbus.c b/src/util/virdbus.c
index 89c9cb3e24..9afc5af194 100644
--- a/src/util/virdbus.c
+++ b/src/util/virdbus.c
@@ -1177,15 +1177,12 @@ virDBusMessageEncodeArgs(DBusMessage* msg,
va_list args)
{
DBusMessageIter iter;
- int ret = -1;
memset(&iter, 0, sizeof(iter));
dbus_message_iter_init_append(msg, &iter);
- ret = virDBusMessageIterEncode(&iter, types, args);
-
- return ret;
+ return virDBusMessageIterEncode(&iter, types, args);
}
diff --git a/src/util/virjson.c b/src/util/virjson.c
index eb6207f13f..d8e80b6c64 100644
--- a/src/util/virjson.c
+++ b/src/util/virjson.c
@@ -2138,7 +2138,6 @@ virJSONValuePtr
virJSONValueObjectDeflatten(virJSONValuePtr json)
{
g_autoptr(virJSONValue) deflattened = NULL;
- virJSONValuePtr ret = NULL;
if (!(deflattened = virJSONValueNewObject()))
return NULL;
@@ -2148,7 +2147,5 @@ virJSONValueObjectDeflatten(virJSONValuePtr json)
deflattened) < 0)
return NULL;
- ret = g_steal_pointer(&deflattened);
-
- return ret;
+ return g_steal_pointer(&deflattened);
}
diff --git a/src/util/virmdev.c b/src/util/virmdev.c
index 9f8cb95423..f18a6dc2d0 100644
--- a/src/util/virmdev.c
+++ b/src/util/virmdev.c
@@ -140,7 +140,6 @@ virMediatedDeviceCheckModel(virMediatedDevicePtr dev,
virMediatedDevicePtr
virMediatedDeviceNew(const char *uuidstr, virMediatedDeviceModelType model)
{
- virMediatedDevicePtr ret = NULL;
g_autoptr(virMediatedDevice) dev = NULL;
g_autofree char *sysfspath = NULL;
@@ -165,9 +164,7 @@ virMediatedDeviceNew(const char *uuidstr, virMediatedDeviceModelType model)
return NULL;
dev->model = model;
- ret = g_steal_pointer(&dev);
-
- return ret;
+ return g_steal_pointer(&dev);
}
#else
diff --git a/src/util/virscsi.c b/src/util/virscsi.c
index 705571f8ec..22360c91b9 100644
--- a/src/util/virscsi.c
+++ b/src/util/virscsi.c
@@ -184,7 +184,6 @@ virSCSIDeviceNew(const char *sysfs_prefix,
bool shareable)
{
g_autoptr(virSCSIDevice) dev = NULL;
- virSCSIDevicePtr ret = NULL;
g_autofree char *sg = NULL;
g_autofree char *vendor_path = NULL;
g_autofree char *model_path = NULL;
@@ -238,8 +237,7 @@ virSCSIDeviceNew(const char *sysfs_prefix,
if (virAsprintf(&dev->id, "%s:%s", vendor, model) < 0)
return NULL;
- ret = g_steal_pointer(&dev);
- return ret;
+ return g_steal_pointer(&dev);
}
static void
diff --git a/src/util/virscsivhost.c b/src/util/virscsivhost.c
index 5f523636be..4feef827b5 100644
--- a/src/util/virscsivhost.c
+++ b/src/util/virscsivhost.c
@@ -249,7 +249,6 @@ virSCSIVHostDevicePtr
virSCSIVHostDeviceNew(const char *name)
{
g_autoptr(virSCSIVHostDevice) dev = NULL;
- virSCSIVHostDevicePtr ret = NULL;
if (VIR_ALLOC(dev) < 0)
return NULL;
@@ -262,9 +261,7 @@ virSCSIVHostDeviceNew(const char *name)
VIR_DEBUG("%s: initialized", dev->name);
- ret = g_steal_pointer(&dev);
-
- return ret;
+ return g_steal_pointer(&dev);
}
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
index be2b5479bb..f083eead3f 100644
--- a/src/util/virstoragefile.c
+++ b/src/util/virstoragefile.c
@@ -1128,7 +1128,6 @@ virStorageFileMetadataNew(const char *path,
int format)
{
g_autoptr(virStorageSource) def = NULL;
- virStorageSourcePtr ret = NULL;
if (!(def = virStorageSourceNew()))
return NULL;
@@ -1138,8 +1137,7 @@ virStorageFileMetadataNew(const char *path,
def->path = g_strdup(path);
- ret = g_steal_pointer(&def);
- return ret;
+ return g_steal_pointer(&def);
}
@@ -1211,7 +1209,6 @@ virStorageFileGetMetadataFromFD(const char *path,
int *backingFormat)
{
- virStorageSourcePtr ret = NULL;
ssize_t len = VIR_STORAGE_MAX_HEADER;
struct stat sb;
int dummy;
@@ -1237,8 +1234,7 @@ virStorageFileGetMetadataFromFD(const char *path,
* update the metadata.*/
meta->type = VIR_STORAGE_TYPE_DIR;
meta->format = VIR_STORAGE_FILE_DIR;
- ret = g_steal_pointer(&meta);
- return ret;
+ return g_steal_pointer(&meta);
}
if (lseek(fd, 0, SEEK_SET) == (off_t)-1) {
@@ -1259,8 +1255,7 @@ virStorageFileGetMetadataFromFD(const char *path,
else if (S_ISBLK(sb.st_mode))
meta->type = VIR_STORAGE_TYPE_BLOCK;
- ret = g_steal_pointer(&meta);
- return ret;
+ return g_steal_pointer(&meta);
}
@@ -1843,7 +1838,6 @@ virStorageAuthDefFree(virStorageAuthDefPtr authdef)
virStorageAuthDefPtr
virStorageAuthDefCopy(const virStorageAuthDef *src)
{
- virStorageAuthDefPtr ret = NULL;
g_autoptr(virStorageAuthDef) authdef = NULL;
if (VIR_ALLOC(authdef) < 0)
@@ -1857,8 +1851,7 @@ virStorageAuthDefCopy(const virStorageAuthDef *src)
if (virSecretLookupDefCopy(&authdef->seclookupdef, &src->seclookupdef) < 0)
return NULL;
- ret = g_steal_pointer(&authdef);
- return ret;
+ return g_steal_pointer(&authdef);
}
@@ -2228,7 +2221,6 @@ virStorageSourcePtr
virStorageSourceCopy(const virStorageSource *src,
bool backingChain)
{
- virStorageSourcePtr ret = NULL;
g_autoptr(virStorageSource) def = NULL;
if (!(def = virStorageSourceNew()))
@@ -2323,8 +2315,7 @@ virStorageSourceCopy(const virStorageSource *src,
return NULL;
}
- ret = g_steal_pointer(&def);
- return ret;
+ return g_steal_pointer(&def);
}
@@ -2604,7 +2595,6 @@ static virStorageSourcePtr
virStorageSourceNewFromBackingRelative(virStorageSourcePtr parent,
const char *rel)
{
- virStorageSourcePtr ret = NULL;
g_autofree char *dirname = NULL;
g_autoptr(virStorageSource) def = NULL;
@@ -2646,8 +2636,7 @@ virStorageSourceNewFromBackingRelative(virStorageSourcePtr parent,
def->type = VIR_STORAGE_TYPE_FILE;
}
- ret = g_steal_pointer(&def);
- return ret;
+ return g_steal_pointer(&def);
}
diff --git a/src/vbox/vbox_storage.c b/src/vbox/vbox_storage.c
index c7bea2c219..9bb3da4c57 100644
--- a/src/vbox/vbox_storage.c
+++ b/src/vbox/vbox_storage.c
@@ -91,10 +91,9 @@ static int vboxStoragePoolNumOfVolumes(virStoragePoolPtr pool)
PRUint32 hardDiskAccessible = 0;
nsresult rc;
size_t i;
- int ret = -1;
if (!data->vboxObj)
- return ret;
+ return -1;
rc = gVBoxAPI.UArray.vboxArrayGet(&hardDisks, data->vboxObj,
gVBoxAPI.UArray.handleGetHardDisks(data->vboxObj));
@@ -102,7 +101,7 @@ static int vboxStoragePoolNumOfVolumes(virStoragePoolPtr pool)
virReportError(VIR_ERR_INTERNAL_ERROR,
_("could not get number of volumes in the pool: %s, rc=%08x"),
pool->name, (unsigned)rc);
- return ret;
+ return -1;
}
for (i = 0; i < hardDisks.count; ++i) {
@@ -119,9 +118,7 @@ static int vboxStoragePoolNumOfVolumes(virStoragePoolPtr pool)
gVBoxAPI.UArray.vboxArrayRelease(&hardDisks);
- ret = hardDiskAccessible;
-
- return ret;
+ return hardDiskAccessible;
}
static int
@@ -132,10 +129,9 @@ vboxStoragePoolListVolumes(virStoragePoolPtr pool, char **const names, int nname
PRUint32 numActive = 0;
nsresult rc;
size_t i;
- int ret = -1;
if (!data->vboxObj)
- return ret;
+ return -1;
rc = gVBoxAPI.UArray.vboxArrayGet(&hardDisks, data->vboxObj,
gVBoxAPI.UArray.handleGetHardDisks(data->vboxObj));
@@ -143,7 +139,7 @@ vboxStoragePoolListVolumes(virStoragePoolPtr pool, char **const names, int nname
virReportError(VIR_ERR_INTERNAL_ERROR,
_("could not get the volume list in the pool: %s, rc=%08x"),
pool->name, (unsigned)rc);
- return ret;
+ return -1;
}
for (i = 0; i < hardDisks.count && numActive < nnames; ++i) {
@@ -175,9 +171,7 @@ vboxStoragePoolListVolumes(virStoragePoolPtr pool, char **const names, int nname
}
gVBoxAPI.UArray.vboxArrayRelease(&hardDisks);
- ret = numActive;
-
- return ret;
+ return numActive;
}
static virStorageVolPtr
diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c
index 5b54f83b22..70084cc79e 100644
--- a/src/vz/vz_driver.c
+++ b/src/vz/vz_driver.c
@@ -210,13 +210,11 @@ static char *
vzConnectGetCapabilities(virConnectPtr conn)
{
vzConnPtr privconn = conn->privateData;
- char *xml;
if (virConnectGetCapabilitiesEnsureACL(conn) < 0)
return NULL;
- xml = virCapabilitiesFormatXML(privconn->driver->caps);
- return xml;
+ return virCapabilitiesFormatXML(privconn->driver->caps);
}
static int
@@ -470,63 +468,53 @@ static int
vzConnectListDomains(virConnectPtr conn, int *ids, int maxids)
{
vzConnPtr privconn = conn->privateData;
- int n;
if (virConnectListDomainsEnsureACL(conn) < 0)
return -1;
- n = virDomainObjListGetActiveIDs(privconn->driver->domains, ids, maxids,
- virConnectListDomainsCheckACL, conn);
-
- return n;
+ return virDomainObjListGetActiveIDs(privconn->driver->domains, ids,
+ maxids, virConnectListDomainsCheckACL,
+ conn);
}
static int
vzConnectNumOfDomains(virConnectPtr conn)
{
vzConnPtr privconn = conn->privateData;
- int count;
if (virConnectNumOfDomainsEnsureACL(conn) < 0)
return -1;
- count = virDomainObjListNumOfDomains(privconn->driver->domains, true,
- virConnectNumOfDomainsCheckACL, conn);
-
- return count;
+ return virDomainObjListNumOfDomains(privconn->driver->domains, true,
+ virConnectNumOfDomainsCheckACL, conn);
}
static int
vzConnectListDefinedDomains(virConnectPtr conn, char **const names, int maxnames)
{
vzConnPtr privconn = conn->privateData;
- int n;
if (virConnectListDefinedDomainsEnsureACL(conn) < 0)
return -1;
memset(names, 0, sizeof(*names) * maxnames);
- n = virDomainObjListGetInactiveNames(privconn->driver->domains, names,
- maxnames,
- virConnectListDefinedDomainsCheckACL,
- conn);
-
- return n;
+ return virDomainObjListGetInactiveNames(privconn->driver->domains, names,
+ maxnames,
+ virConnectListDefinedDomainsCheckACL,
+ conn);
}
static int
vzConnectNumOfDefinedDomains(virConnectPtr conn)
{
vzConnPtr privconn = conn->privateData;
- int count;
if (virConnectNumOfDefinedDomainsEnsureACL(conn) < 0)
return -1;
- count = virDomainObjListNumOfDomains(privconn->driver->domains, false,
- virConnectNumOfDefinedDomainsCheckACL,
- conn);
- return count;
+ return virDomainObjListNumOfDomains(privconn->driver->domains, false,
+ virConnectNumOfDefinedDomainsCheckACL,
+ conn);
}
static int
@@ -535,17 +523,14 @@ vzConnectListAllDomains(virConnectPtr conn,
unsigned int flags)
{
vzConnPtr privconn = conn->privateData;
- int ret = -1;
virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1);
if (virConnectListAllDomainsEnsureACL(conn) < 0)
return -1;
- ret = virDomainObjListExport(privconn->driver->domains, conn, domains,
- virConnectListAllDomainsCheckACL, flags);
-
- return ret;
+ return virDomainObjListExport(privconn->driver->domains, conn, domains,
+ virConnectListAllDomainsCheckACL, flags);
}
static virDomainPtr
diff --git a/tests/qemuxml2argvmock.c b/tests/qemuxml2argvmock.c
index 34e0eb91a6..914d2bcf9f 100644
--- a/tests/qemuxml2argvmock.c
+++ b/tests/qemuxml2argvmock.c
@@ -198,10 +198,7 @@ virNetDevRunEthernetScript(const char *ifname G_GNUC_UNUSED,
char *
virHostGetDRMRenderNode(void)
{
- char *dst = NULL;
-
- dst = g_strdup("/dev/dri/foo");
- return dst;
+ return g_strdup("/dev/dri/foo");
}
static void (*real_virCommandPassFD)(virCommandPtr cmd, int fd, unsigned int flags);
diff --git a/tests/virstoragetest.c b/tests/virstoragetest.c
index 8f1d93fa5a..32d12fd778 100644
--- a/tests/virstoragetest.c
+++ b/tests/virstoragetest.c
@@ -85,7 +85,6 @@ testStorageFileGetMetadata(const char *path,
uid_t uid, gid_t gid)
{
struct stat st;
- virStorageSourcePtr ret = NULL;
g_autoptr(virStorageSource) def = NULL;
if (!(def = virStorageSourceNew()))
@@ -107,8 +106,7 @@ testStorageFileGetMetadata(const char *path,
if (virStorageFileGetMetadata(def, uid, gid, false) < 0)
return NULL;
- ret = g_steal_pointer(&def);
- return ret;
+ return g_steal_pointer(&def);
}
static int
diff --git a/tools/virsh-completer-domain.c b/tools/virsh-completer-domain.c
index 6bfa3ab58c..7df08211b0 100644
--- a/tools/virsh-completer-domain.c
+++ b/tools/virsh-completer-domain.c
@@ -87,7 +87,6 @@ virshDomainInterfaceCompleter(vshControl *ctl,
g_autofree xmlNodePtr *interfaces = NULL;
size_t i;
unsigned int domainXMLFlags = 0;
- char **ret = NULL;
VIR_AUTOSTRINGLIST tmp = NULL;
virCheckFlags(VIRSH_DOMAIN_INTERFACE_COMPLETER_MAC, NULL);
@@ -121,8 +120,7 @@ virshDomainInterfaceCompleter(vshControl *ctl,
return NULL;
}
- ret = g_steal_pointer(&tmp);
- return ret;
+ return g_steal_pointer(&tmp);
}
@@ -138,7 +136,6 @@ virshDomainDiskTargetCompleter(vshControl *ctl,
int ndisks;
size_t i;
VIR_AUTOSTRINGLIST tmp = NULL;
- char **ret = NULL;
virCheckFlags(0, NULL);
@@ -161,8 +158,7 @@ virshDomainDiskTargetCompleter(vshControl *ctl,
return NULL;
}
- ret = g_steal_pointer(&tmp);
- return ret;
+ return g_steal_pointer(&tmp);
}
@@ -172,7 +168,6 @@ virshDomainEventNameCompleter(vshControl *ctl G_GNUC_UNUSED,
unsigned int flags)
{
size_t i = 0;
- char **ret = NULL;
VIR_AUTOSTRINGLIST tmp = NULL;
virCheckFlags(0, NULL);
@@ -183,8 +178,7 @@ virshDomainEventNameCompleter(vshControl *ctl G_GNUC_UNUSED,
for (i = 0; i < VIR_DOMAIN_EVENT_ID_LAST; i++)
tmp[i] = g_strdup(virshDomainEventCallbacks[i].name);
- ret = g_steal_pointer(&tmp);
- return ret;
+ return g_steal_pointer(&tmp);
}
@@ -195,7 +189,6 @@ virshDomainInterfaceStateCompleter(vshControl *ctl,
{
virshControlPtr priv = ctl->privData;
const char *iface = NULL;
- char **ret = NULL;
g_autoptr(xmlDoc) xml = NULL;
g_autoptr(xmlXPathContext) ctxt = NULL;
virMacAddr macaddr;
@@ -244,8 +237,7 @@ virshDomainInterfaceStateCompleter(vshControl *ctl,
tmp[0] = g_strdup("down");
}
- ret = g_steal_pointer(&tmp);
- return ret;
+ return g_steal_pointer(&tmp);
}
@@ -261,7 +253,6 @@ virshDomainDeviceAliasCompleter(vshControl *ctl,
g_autofree xmlNodePtr *aliases = NULL;
size_t i;
unsigned int domainXMLFlags = 0;
- char **ret = NULL;
VIR_AUTOSTRINGLIST tmp = NULL;
virCheckFlags(0, NULL);
@@ -287,8 +278,7 @@ virshDomainDeviceAliasCompleter(vshControl *ctl,
return NULL;
}
- ret = g_steal_pointer(&tmp);
- return ret;
+ return g_steal_pointer(&tmp);
}
diff --git a/tools/virsh-completer-host.c b/tools/virsh-completer-host.c
index 42e59a6656..f795a2a826 100644
--- a/tools/virsh-completer-host.c
+++ b/tools/virsh-completer-host.c
@@ -64,7 +64,6 @@ virshAllocpagesPagesizeCompleter(vshControl *ctl,
bool cellno = vshCommandOptBool(cmd, "cellno");
g_autofree char *path = NULL;
g_autofree char *cap_xml = NULL;
- char **ret = NULL;
VIR_AUTOSTRINGLIST tmp = NULL;
virCheckFlags(0, NULL);
@@ -100,8 +99,7 @@ virshAllocpagesPagesizeCompleter(vshControl *ctl,
return NULL;
}
- ret = g_steal_pointer(&tmp);
- return ret;
+ return g_steal_pointer(&tmp);
}
@@ -117,7 +115,6 @@ virshCellnoCompleter(vshControl *ctl,
g_autoptr(xmlDoc) doc = NULL;
size_t i = 0;
g_autofree char *cap_xml = NULL;
- char **ret = NULL;
VIR_AUTOSTRINGLIST tmp = NULL;
virCheckFlags(0, NULL);
@@ -143,6 +140,5 @@ virshCellnoCompleter(vshControl *ctl,
return NULL;
}
- ret = g_steal_pointer(&tmp);
- return ret;
+ return g_steal_pointer(&tmp);
}
diff --git a/tools/virsh-completer-nodedev.c b/tools/virsh-completer-nodedev.c
index 6b01941911..5425f11262 100644
--- a/tools/virsh-completer-nodedev.c
+++ b/tools/virsh-completer-nodedev.c
@@ -72,7 +72,6 @@ virshNodeDeviceEventNameCompleter(vshControl *ctl G_GNUC_UNUSED,
unsigned int flags)
{
size_t i = 0;
- char **ret = NULL;
VIR_AUTOSTRINGLIST tmp = NULL;
virCheckFlags(0, NULL);
@@ -83,8 +82,7 @@ virshNodeDeviceEventNameCompleter(vshControl *ctl G_GNUC_UNUSED,
for (i = 0; i < VIR_NODE_DEVICE_EVENT_ID_LAST; i++)
tmp[i] = g_strdup(virshNodeDeviceEventCallbacks[i].name);
- ret = g_steal_pointer(&tmp);
- return ret;
+ return g_steal_pointer(&tmp);
}
diff --git a/tools/virsh-completer-pool.c b/tools/virsh-completer-pool.c
index bd9d9a9802..ed3b1e35ff 100644
--- a/tools/virsh-completer-pool.c
+++ b/tools/virsh-completer-pool.c
@@ -75,7 +75,6 @@ virshPoolEventNameCompleter(vshControl *ctl G_GNUC_UNUSED,
unsigned int flags)
{
size_t i = 0;
- char **ret = NULL;
VIR_AUTOSTRINGLIST tmp = NULL;
virCheckFlags(0, NULL);
@@ -86,8 +85,7 @@ virshPoolEventNameCompleter(vshControl *ctl G_GNUC_UNUSED,
for (i = 0; i < VIR_STORAGE_POOL_EVENT_ID_LAST; i++)
tmp[i] = g_strdup(virshPoolEventCallbacks[i].name);
- ret = g_steal_pointer(&tmp);
- return ret;
+ return g_steal_pointer(&tmp);
}
diff --git a/tools/virsh-completer-secret.c b/tools/virsh-completer-secret.c
index bb02577c82..a90fdb399f 100644
--- a/tools/virsh-completer-secret.c
+++ b/tools/virsh-completer-secret.c
@@ -73,7 +73,6 @@ virshSecretEventNameCompleter(vshControl *ctl G_GNUC_UNUSED,
unsigned int flags)
{
size_t i;
- char **ret = NULL;
VIR_AUTOSTRINGLIST tmp = NULL;
virCheckFlags(0, NULL);
@@ -84,6 +83,5 @@ virshSecretEventNameCompleter(vshControl *ctl G_GNUC_UNUSED,
for (i = 0; i < VIR_SECRET_EVENT_ID_LAST; i++)
tmp[i] = g_strdup(virshSecretEventCallbacks[i].name);
- ret = g_steal_pointer(&tmp);
- return ret;
+ return g_steal_pointer(&tmp);
}
diff --git a/tools/virsh-network.c b/tools/virsh-network.c
index 64b733adcc..edd61f3217 100644
--- a/tools/virsh-network.c
+++ b/tools/virsh-network.c
@@ -1384,8 +1384,6 @@ static const vshCmdOptDef opts_network_dhcp_leases[] = {
static int
virshNetworkDHCPLeaseSorter(const void *a, const void *b)
{
- int rv = -1;
-
virNetworkDHCPLeasePtr *lease1 = (virNetworkDHCPLeasePtr *) a;
virNetworkDHCPLeasePtr *lease2 = (virNetworkDHCPLeasePtr *) b;
@@ -1395,8 +1393,7 @@ virshNetworkDHCPLeaseSorter(const void *a, const void *b)
if (!*lease1)
return *lease2 != NULL;
- rv = vshStrcasecmp((*lease1)->mac, (*lease2)->mac);
- return rv;
+ return vshStrcasecmp((*lease1)->mac, (*lease2)->mac);
}
static bool
diff --git a/tools/vsh.c b/tools/vsh.c
index 3f8b7f2186..ec46b822c5 100644
--- a/tools/vsh.c
+++ b/tools/vsh.c
@@ -2898,10 +2898,7 @@ vshReadlineCompletion(const char *text,
int start G_GNUC_UNUSED,
int end G_GNUC_UNUSED)
{
- char **matches = (char **) NULL;
-
- matches = rl_completion_matches(text, vshReadlineParse);
- return matches;
+ return rl_completion_matches(text, vshReadlineParse);
}
--
2.21.0
3
2
[libvirt] [PATCH 0/5] Fix up some issues from x and y resolution patches
by Jonathon Jongsma 23 Oct '19
by Jonathon Jongsma 23 Oct '19
23 Oct '19
I already had some of these changes locally from my review, so I decided to
send a quick cleanup series on the x and y resolution changes myself.
The last patch in the series is a similar cleanup to a related function that
was probably the inspiration for the resolution parsing function. It
changes the behavior of this function slightly, but I think the previous
behavior should be considered a bug.
An illustration of the change in behavior: previously, the following
configuration (note: invalid value for accel2d):
<acceleration accel2d='foo' accel3d='yes' rendernode='/dev/dri/test'/>
would have resulted in the the parse function returning the following struct:
{
accel2d = 0; /* default value */
accel3d = 1; /* YES */
rendernode = NULL /* default value - not parsed due to accel2d error */
}
After this patch, the parse function returns NULL instead. I think that's an
improvement, but it is different than the previous behavior.
Jonathon Jongsma (5):
qemu: fix documentation for video resolution
conf: Return error when resolution values are invalid
conf: remove unnecessary NULL checks
conf: ensure both resolution values are non-zero
conf: report errors when parsing video accel
docs/formatdomain.html.in | 12 ++++++----
src/conf/domain_conf.c | 46 +++++++++++++++++++--------------------
2 files changed, 30 insertions(+), 28 deletions(-)
--
2.21.0
2
9
[libvirt] [PATCH] .gitignore: Ignore src/admin/libvirt_admin.{def, syms}
by Michal Privoznik 23 Oct '19
by Michal Privoznik 23 Oct '19
23 Oct '19
In v5.8.0-332-g3097282d86 the libvirt-admin.so was moved into
src/admin/ directory. However, corresponding .gitignore change
was left out.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
Pushed under trivial rule.
.gitignore | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.gitignore b/.gitignore
index acd88b0340..c45b8bd098 100644
--- a/.gitignore
+++ b/.gitignore
@@ -120,6 +120,8 @@
/src/admin/admin_client.h
/src/admin/admin_protocol.[ch]
/src/admin/admin_server_dispatch_stubs.h
+/src/admin/libvirt_admin.def
+/src/admin/libvirt_admin.syms
/src/bhyve/test_libvirtd_bhyve.aug
/src/bhyve/test_virtbhyved.aug
/src/bhyve/virtbhyved.aug
@@ -137,7 +139,6 @@
/src/libvirt_access_lxc.xml
/src/libvirt_access_qemu.syms
/src/libvirt_access_qemu.xml
-/src/libvirt_admin.syms
/src/libvirt_*.stp
/src/libvirt_*helper
/src/libvirt_*probes.h
--
2.21.0
1
0
[libvirt] [PATCH] tests: Add capabilities for QEMU 4.1.0 on s390x
by Shalini Chellathurai Saroja 23 Oct '19
by Shalini Chellathurai Saroja 23 Oct '19
23 Oct '19
Signed-off-by: Shalini Chellathurai Saroja <shalini(a)linux.ibm.com>
---
.../domaincapsschemadata/qemu_4.1.0.s390x.xml | 221 +
tests/domaincapstest.c | 4 +
.../caps_4.1.0.s390x.replies | 22171 ++++++++++++++++
.../qemucapabilitiesdata/caps_4.1.0.s390x.xml | 3272 +++
4 files changed, 25668 insertions(+)
create mode 100644 tests/domaincapsschemadata/qemu_4.1.0.s390x.xml
create mode 100644 tests/qemucapabilitiesdata/caps_4.1.0.s390x.replies
create mode 100644 tests/qemucapabilitiesdata/caps_4.1.0.s390x.xml
diff --git a/tests/domaincapsschemadata/qemu_4.1.0.s390x.xml b/tests/domaincapsschemadata/qemu_4.1.0.s390x.xml
new file mode 100644
index 0000000000..587be91255
--- /dev/null
+++ b/tests/domaincapsschemadata/qemu_4.1.0.s390x.xml
@@ -0,0 +1,221 @@
+<domainCapabilities>
+ <path>/usr/bin/qemu-system-s390x</path>
+ <domain>kvm</domain>
+ <machine>s390-ccw-virtio-4.1</machine>
+ <arch>s390x</arch>
+ <vcpu max='248'/>
+ <iothreads supported='yes'/>
+ <os supported='yes'>
+ <enum name='firmware'/>
+ <loader supported='yes'>
+ <value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
+ <value>/usr/share/AAVMF/AAVMF32_CODE.fd</value>
+ <value>/usr/share/OVMF/OVMF_CODE.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'/>
+ <mode name='host-model' supported='yes'>
+ <model fallback='forbid'>gen15a-base</model>
+ <feature policy='require' name='aen'/>
+ <feature policy='require' name='cmmnt'/>
+ <feature policy='require' name='vxpdeh'/>
+ <feature policy='require' name='aefsi'/>
+ <feature policy='require' name='csske'/>
+ <feature policy='require' name='mepoch'/>
+ <feature policy='require' name='msa9'/>
+ <feature policy='require' name='msa8'/>
+ <feature policy='require' name='msa7'/>
+ <feature policy='require' name='msa6'/>
+ <feature policy='require' name='msa5'/>
+ <feature policy='require' name='msa4'/>
+ <feature policy='require' name='msa3'/>
+ <feature policy='require' name='msa2'/>
+ <feature policy='require' name='msa1'/>
+ <feature policy='require' name='sthyi'/>
+ <feature policy='require' name='edat'/>
+ <feature policy='require' name='ri'/>
+ <feature policy='require' name='deflate'/>
+ <feature policy='require' name='edat2'/>
+ <feature policy='require' name='etoken'/>
+ <feature policy='require' name='vx'/>
+ <feature policy='require' name='ipter'/>
+ <feature policy='require' name='mepochptff'/>
+ <feature policy='require' name='ap'/>
+ <feature policy='require' name='vxeh'/>
+ <feature policy='require' name='vxpd'/>
+ <feature policy='require' name='esop'/>
+ <feature policy='require' name='msa9_pckmo'/>
+ <feature policy='require' name='vxeh2'/>
+ <feature policy='require' name='esort'/>
+ <feature policy='require' name='apqi'/>
+ <feature policy='require' name='apft'/>
+ <feature policy='require' name='iep'/>
+ <feature policy='require' name='apqci'/>
+ <feature policy='require' name='cte'/>
+ <feature policy='require' name='bpb'/>
+ <feature policy='require' name='gs'/>
+ <feature policy='require' name='ppa15'/>
+ <feature policy='require' name='zpci'/>
+ <feature policy='require' name='sea_esop2'/>
+ <feature policy='require' name='te'/>
+ <feature policy='require' name='cmm'/>
+ </mode>
+ <mode name='custom' supported='yes'>
+ <model usable='yes'>z800-base</model>
+ <model usable='yes'>z890.2-base</model>
+ <model usable='yes'>z9EC.2</model>
+ <model usable='yes'>z13.2</model>
+ <model usable='yes'>z9BC-base</model>
+ <model usable='yes'>z990.5-base</model>
+ <model usable='yes'>z890.2</model>
+ <model usable='yes'>z890</model>
+ <model usable='yes'>z9BC</model>
+ <model usable='yes'>z13</model>
+ <model usable='yes'>z196</model>
+ <model usable='yes'>z13s</model>
+ <model usable='yes'>z990.3</model>
+ <model usable='yes'>z13s-base</model>
+ <model usable='yes'>z9EC</model>
+ <model usable='yes'>gen15a</model>
+ <model usable='yes'>z14ZR1-base</model>
+ <model usable='yes'>z14.2-base</model>
+ <model usable='yes'>z900.3-base</model>
+ <model usable='yes'>z13.2-base</model>
+ <model usable='yes'>z196.2-base</model>
+ <model usable='yes'>zBC12-base</model>
+ <model usable='yes'>z9BC.2-base</model>
+ <model usable='yes'>z900.2-base</model>
+ <model usable='yes'>z9EC.3</model>
+ <model usable='yes'>zEC12</model>
+ <model usable='yes'>z900</model>
+ <model usable='yes'>z114-base</model>
+ <model usable='yes'>zEC12-base</model>
+ <model usable='yes'>z10EC.2</model>
+ <model usable='yes'>z10EC-base</model>
+ <model usable='yes'>z900.3</model>
+ <model usable='yes'>z14ZR1</model>
+ <model usable='yes'>z10BC</model>
+ <model usable='yes'>z10BC.2-base</model>
+ <model usable='yes'>z9BC.2</model>
+ <model usable='yes'>z990.2</model>
+ <model usable='yes'>z990</model>
+ <model usable='yes'>z14</model>
+ <model usable='yes'>gen15b-base</model>
+ <model usable='yes'>z990.4</model>
+ <model usable='yes'>max</model>
+ <model usable='yes'>z10EC.2-base</model>
+ <model usable='yes'>gen15a-base</model>
+ <model usable='yes'>z800</model>
+ <model usable='yes'>zEC12.2</model>
+ <model usable='yes'>z10EC</model>
+ <model usable='yes'>z990.2-base</model>
+ <model usable='yes'>z900-base</model>
+ <model usable='yes'>z10BC.2</model>
+ <model usable='yes'>z9EC-base</model>
+ <model usable='yes'>z9EC.3-base</model>
+ <model usable='yes'>z114</model>
+ <model usable='yes'>z890.3</model>
+ <model usable='yes'>z196-base</model>
+ <model usable='yes'>z9EC.2-base</model>
+ <model usable='yes'>z196.2</model>
+ <model usable='yes'>z990-base</model>
+ <model usable='yes'>z14.2</model>
+ <model usable='yes'>z900.2</model>
+ <model usable='yes'>z890-base</model>
+ <model usable='yes'>z10EC.3</model>
+ <model usable='yes'>z14-base</model>
+ <model usable='yes'>z990.4-base</model>
+ <model usable='yes'>z10EC.3-base</model>
+ <model usable='yes'>z10BC-base</model>
+ <model usable='yes'>z13-base</model>
+ <model usable='yes'>z990.3-base</model>
+ <model usable='yes'>zEC12.2-base</model>
+ <model usable='yes'>zBC12</model>
+ <model usable='yes'>z890.3-base</model>
+ <model usable='yes'>z990.5</model>
+ <model usable='yes'>gen15b</model>
+ <model usable='no'>qemu</model>
+ </mode>
+ </cpu>
+ <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>
+ </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>sdl</value>
+ <value>vnc</value>
+ </enum>
+ </graphics>
+ <video supported='yes'>
+ <enum name='modelType'>
+ <value>virtio</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>
+ </enum>
+ </rng>
+ </devices>
+ <features>
+ <gic supported='no'/>
+ <vmcoreinfo supported='no'/>
+ <genid supported='no'/>
+ <sev supported='no'/>
+ </features>
+</domainCapabilities>
diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c
index db14114cba..2ccdd56bec 100644
--- a/tests/domaincapstest.c
+++ b/tests/domaincapstest.c
@@ -456,6 +456,10 @@ mymain(void)
"/usr/bin/qemu-system-x86_64", NULL,
"x86_64", VIR_DOMAIN_VIRT_KVM);
+ DO_TEST_QEMU("4.1.0", "caps_4.1.0",
+ "/usr/bin/qemu-system-s390x", NULL,
+ "s390x", VIR_DOMAIN_VIRT_KVM);
+
DO_TEST_QEMU("4.2.0", "caps_4.2.0",
"/usr/bin/qemu-system-x86_64", NULL,
"x86_64", VIR_DOMAIN_VIRT_KVM);
diff --git a/tests/qemucapabilitiesdata/caps_4.1.0.s390x.replies b/tests/qemucapabilitiesdata/caps_4.1.0.s390x.replies
new file mode 100644
index 0000000000..b3ca4f7d11
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_4.1.0.s390x.replies
@@ -0,0 +1,22171 @@
+{
+ "execute": "qmp_capabilities",
+ "id": "libvirt-1"
+}
+
+{
+ "return": {
+ },
+ "id": "libvirt-1"
+}
+
+{
+ "execute": "query-version",
+ "id": "libvirt-2"
+}
+
+{
+ "return": {
+ "qemu": {
+ "micro": 0,
+ "minor": 1,
+ "major": 4
+ },
+ "package": "v4.1.0"
+ },
+ "id": "libvirt-2"
+}
+
+{
+ "execute": "query-target",
+ "id": "libvirt-3"
+}
+
+{
+ "return": {
+ "arch": "s390x"
+ },
+ "id": "libvirt-3"
+}
+
+{
+ "execute": "query-commands",
+ "id": "libvirt-4"
+}
+
+{
+ "return": [
+ {
+ "name": "netdev_add"
+ },
+ {
+ "name": "device_add"
+ },
+ {
+ "name": "query-qmp-schema"
+ },
+ {
+ "name": "dump-skeys"
+ },
+ {
+ "name": "query-vm-generation-id"
+ },
+ {
+ "name": "xen-load-devices-state"
+ },
+ {
+ "name": "query-acpi-ospm-status"
+ },
+ {
+ "name": "query-memory-devices"
+ },
+ {
+ "name": "query-command-line-options"
+ },
+ {
+ "name": "query-target"
+ },
+ {
+ "name": "query-fdsets"
+ },
+ {
+ "name": "remove-fd"
+ },
+ {
+ "name": "add-fd"
+ },
+ {
+ "name": "query-memory-size-summary"
+ },
+ {
+ "name": "closefd"
+ },
+ {
+ "name": "getfd"
+ },
+ {
+ "name": "xen-set-global-dirty-log"
+ },
+ {
+ "name": "change"
+ },
+ {
+ "name": "human-monitor-command"
+ },
+ {
+ "name": "balloon"
+ },
+ {
+ "name": "inject-nmi"
+ },
+ {
+ "name": "system_wakeup"
+ },
+ {
+ "name": "x-exit-preconfig"
+ },
+ {
+ "name": "cont"
+ },
+ {
+ "name": "pmemsave"
+ },
+ {
+ "name": "memsave"
+ },
+ {
+ "name": "system_powerdown"
+ },
+ {
+ "name": "system_reset"
+ },
+ {
+ "name": "stop"
+ },
+ {
+ "name": "quit"
+ },
+ {
+ "name": "query-pci"
+ },
+ {
+ "name": "query-balloon"
+ },
+ {
+ "name": "query-iothreads"
+ },
+ {
+ "name": "query-events"
+ },
+ {
+ "name": "query-uuid"
+ },
+ {
+ "name": "query-kvm"
+ },
+ {
+ "name": "query-name"
+ },
+ {
+ "name": "add_client"
+ },
+ {
+ "name": "query-commands"
+ },
+ {
+ "name": "query-version"
+ },
+ {
+ "name": "qmp_capabilities"
+ },
+ {
+ "name": "query-cpu-definitions"
+ },
+ {
+ "name": "query-cpu-model-expansion"
+ },
+ {
+ "name": "query-cpu-model-baseline"
+ },
+ {
+ "name": "query-cpu-model-comparison"
+ },
+ {
+ "name": "set-numa-node"
+ },
+ {
+ "name": "query-hotpluggable-cpus"
+ },
+ {
+ "name": "query-memdev"
+ },
+ {
+ "name": "query-current-machine"
+ },
+ {
+ "name": "query-machines"
+ },
+ {
+ "name": "cpu-add"
+ },
+ {
+ "name": "query-cpus-fast"
+ },
+ {
+ "name": "query-cpus"
+ },
+ {
+ "name": "device_del"
+ },
+ {
+ "name": "device-list-properties"
+ },
+ {
+ "name": "object-del"
+ },
+ {
+ "name": "object-add"
+ },
+ {
+ "name": "qom-list-properties"
+ },
+ {
+ "name": "qom-list-types"
+ },
+ {
+ "name": "qom-set"
+ },
+ {
+ "name": "qom-get"
+ },
+ {
+ "name": "qom-list"
+ },
+ {
+ "name": "trace-event-set-state"
+ },
+ {
+ "name": "trace-event-get-state"
+ },
+ {
+ "name": "transaction"
+ },
+ {
+ "name": "migrate-pause"
+ },
+ {
+ "name": "migrate-recover"
+ },
+ {
+ "name": "query-colo-status"
+ },
+ {
+ "name": "xen-colo-do-checkpoint"
+ },
+ {
+ "name": "query-xen-replication-status"
+ },
+ {
+ "name": "xen-set-replication"
+ },
+ {
+ "name": "xen-save-devices-state"
+ },
+ {
+ "name": "migrate-incoming"
+ },
+ {
+ "name": "migrate"
+ },
+ {
+ "name": "query-migrate-cache-size"
+ },
+ {
+ "name": "migrate-set-cache-size"
+ },
+ {
+ "name": "migrate_set_speed"
+ },
+ {
+ "name": "migrate_set_downtime"
+ },
+ {
+ "name": "migrate-continue"
+ },
+ {
+ "name": "migrate_cancel"
+ },
+ {
+ "name": "x-colo-lost-heartbeat"
+ },
+ {
+ "name": "migrate-start-postcopy"
+ },
+ {
+ "name": "client_migrate_info"
+ },
+ {
+ "name": "query-migrate-parameters"
+ },
+ {
+ "name": "migrate-set-parameters"
+ },
+ {
+ "name": "query-migrate-capabilities"
+ },
+ {
+ "name": "migrate-set-capabilities"
+ },
+ {
+ "name": "query-migrate"
+ },
+ {
+ "name": "query-display-options"
+ },
+ {
+ "name": "input-send-event"
+ },
+ {
+ "name": "send-key"
+ },
+ {
+ "name": "query-mice"
+ },
+ {
+ "name": "change-vnc-password"
+ },
+ {
+ "name": "query-vnc-servers"
+ },
+ {
+ "name": "query-vnc"
+ },
+ {
+ "name": "screendump"
+ },
+ {
+ "name": "expire_password"
+ },
+ {
+ "name": "set_password"
+ },
+ {
+ "name": "query-tpm"
+ },
+ {
+ "name": "query-tpm-types"
+ },
+ {
+ "name": "query-tpm-models"
+ },
+ {
+ "name": "query-rocker-of-dpa-groups"
+ },
+ {
+ "name": "query-rocker-of-dpa-flows"
+ },
+ {
+ "name": "query-rocker-ports"
+ },
+ {
+ "name": "query-rocker"
+ },
+ {
+ "name": "announce-self"
+ },
+ {
+ "name": "query-rx-filter"
+ },
+ {
+ "name": "netdev_del"
+ },
+ {
+ "name": "set_link"
+ },
+ {
+ "name": "query-dump-guest-memory-capability"
+ },
+ {
+ "name": "query-dump"
+ },
+ {
+ "name": "dump-guest-memory"
+ },
+ {
+ "name": "chardev-send-break"
+ },
+ {
+ "name": "chardev-remove"
+ },
+ {
+ "name": "chardev-change"
+ },
+ {
+ "name": "chardev-add"
+ },
+ {
+ "name": "ringbuf-read"
+ },
+ {
+ "name": "ringbuf-write"
+ },
+ {
+ "name": "query-chardev-backends"
+ },
+ {
+ "name": "query-chardev"
+ },
+ {
+ "name": "nbd-server-stop"
+ },
+ {
+ "name": "nbd-server-remove"
+ },
+ {
+ "name": "nbd-server-add"
+ },
+ {
+ "name": "nbd-server-start"
+ },
+ {
+ "name": "eject"
+ },
+ {
+ "name": "blockdev-snapshot-delete-internal-sync"
+ },
+ {
+ "name": "blockdev-snapshot-internal-sync"
+ },
+ {
+ "name": "query-pr-managers"
+ },
+ {
+ "name": "x-blockdev-set-iothread"
+ },
+ {
+ "name": "x-blockdev-change"
+ },
+ {
+ "name": "block-set-write-threshold"
+ },
+ {
+ "name": "blockdev-change-medium"
+ },
+ {
+ "name": "blockdev-insert-medium"
+ },
+ {
+ "name": "blockdev-remove-medium"
+ },
+ {
+ "name": "blockdev-close-tray"
+ },
+ {
+ "name": "blockdev-open-tray"
+ },
+ {
+ "name": "blockdev-create"
+ },
+ {
+ "name": "blockdev-del"
+ },
+ {
+ "name": "x-blockdev-reopen"
+ },
+ {
+ "name": "blockdev-add"
+ },
+ {
+ "name": "block-job-finalize"
+ },
+ {
+ "name": "block-job-dismiss"
+ },
+ {
+ "name": "block-job-complete"
+ },
+ {
+ "name": "block-job-resume"
+ },
+ {
+ "name": "block-job-pause"
+ },
+ {
+ "name": "block-job-cancel"
+ },
+ {
+ "name": "block-job-set-speed"
+ },
+ {
+ "name": "block-stream"
+ },
+ {
+ "name": "block_set_io_throttle"
+ },
+ {
+ "name": "blockdev-mirror"
+ },
+ {
+ "name": "x-debug-block-dirty-bitmap-sha256"
+ },
+ {
+ "name": "block-dirty-bitmap-merge"
+ },
+ {
+ "name": "block-dirty-bitmap-disable"
+ },
+ {
+ "name": "block-dirty-bitmap-enable"
+ },
+ {
+ "name": "block-dirty-bitmap-clear"
+ },
+ {
+ "name": "block-dirty-bitmap-remove"
+ },
+ {
+ "name": "block-dirty-bitmap-add"
+ },
+ {
+ "name": "drive-mirror"
+ },
+ {
+ "name": "x-debug-query-block-graph"
+ },
+ {
+ "name": "query-named-block-nodes"
+ },
+ {
+ "name": "blockdev-backup"
+ },
+ {
+ "name": "drive-backup"
+ },
+ {
+ "name": "block-commit"
+ },
+ {
+ "name": "change-backing-file"
+ },
+ {
+ "name": "blockdev-snapshot"
+ },
+ {
+ "name": "blockdev-snapshot-sync"
+ },
+ {
+ "name": "block_resize"
+ },
+ {
+ "name": "block_passwd"
+ },
+ {
+ "name": "query-block-jobs"
+ },
+ {
+ "name": "query-blockstats"
+ },
+ {
+ "name": "query-block"
+ },
+ {
+ "name": "block-latency-histogram-set"
+ },
+ {
+ "name": "query-jobs"
+ },
+ {
+ "name": "job-finalize"
+ },
+ {
+ "name": "job-dismiss"
+ },
+ {
+ "name": "job-complete"
+ },
+ {
+ "name": "job-cancel"
+ },
+ {
+ "name": "job-resume"
+ },
+ {
+ "name": "job-pause"
+ },
+ {
+ "name": "watchdog-set-action"
+ },
+ {
+ "name": "query-status"
+ }
+ ],
+ "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": "authz-pam",
+ "parent": "authz"
+ },
+ {
+ "name": "chardev-stdio",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "z800-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-ccw-bus",
+ "parent": "virtio-bus"
+ },
+ {
+ "name": "z890.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-rng-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "z9EC.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-skeys-qemu",
+ "parent": "s390-skeys"
+ },
+ {
+ "name": "virtio-net-pci-transitional",
+ "parent": "virtio-net-pci-base"
+ },
+ {
+ "name": "vhost-user-blk",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "SCSI",
+ "parent": "bus"
+ },
+ {
+ "name": "z13.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "vhost-user-backend",
+ "parent": "object"
+ },
+ {
+ "name": "virtio-scsi-device",
+ "parent": "virtio-scsi-common"
+ },
+ {
+ "name": "filter-mirror",
+ "parent": "netfilter"
+ },
+ {
+ "name": "z9BC-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "vhost-user-input-pci",
+ "parent": "vhost-user-input-pci-base-type"
+ },
+ {
+ "name": "sclpquiesce",
+ "parent": "s390-sclp-event-type"
+ },
+ {
+ "name": "z990.5-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-blk-pci-non-transitional",
+ "parent": "virtio-blk-pci-base"
+ },
+ {
+ "name": "virtio-9p-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "vfio-pci-nohotplug",
+ "parent": "vfio-pci"
+ },
+ {
+ "name": "qio-channel-command",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "s390-ccw-virtio-2.7-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "z890.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "colo-compare",
+ "parent": "object"
+ },
+ {
+ "name": "s390-sclp-event-facility",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "z890-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "ap-bridge",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-serial-pci",
+ "parent": "virtio-serial-pci-base"
+ },
+ {
+ "name": "tls-creds-psk",
+ "parent": "tls-creds"
+ },
+ {
+ "name": "chardev-mux",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtio-net-pci",
+ "parent": "virtio-net-pci-base"
+ },
+ {
+ "name": "z9BC-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "chardev-wctablet",
+ "parent": "chardev"
+ },
+ {
+ "name": "s390-ccw-virtio-2.10-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "zpci",
+ "parent": "device"
+ },
+ {
+ "name": "virtconsole",
+ "parent": "virtserialport"
+ },
+ {
+ "name": "PCIE",
+ "parent": "PCI"
+ },
+ {
+ "name": "pci-bridge-seat",
+ "parent": "pci-bridge"
+ },
+ {
+ "name": "s390-ccw-virtio-2.4-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "chardev-udp",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtio-balloon-pci-non-transitional",
+ "parent": "virtio-balloon-pci-base"
+ },
+ {
+ "name": "virtio-crypto-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "chardev-testdev",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtual-css-bridge",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "sclpconsole",
+ "parent": "s390-sclp-event-type"
+ },
+ {
+ "name": "none-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "PCI",
+ "parent": "bus"
+ },
+ {
+ "name": "virtio-serial-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "cpu-cluster",
+ "parent": "device"
+ },
+ {
+ "name": "z13-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "vhost-vsock-pci",
+ "parent": "vhost-vsock-pci-base"
+ },
+ {
+ "name": "z196-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-blk-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "virtio-scsi-pci",
+ "parent": "virtio-scsi-pci-base"
+ },
+ {
+ "name": "vhost-user-scsi-pci-non-transitional",
+ "parent": "vhost-user-scsi-pci-base"
+ },
+ {
+ "name": "z13s-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "host-s390x-cpu",
+ "parent": "max-s390x-cpu"
+ },
+ {
+ "name": "chardev-pty",
+ "parent": "chardev"
+ },
+ {
+ "name": "chardev-vc",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtio-9p-pci-transitional",
+ "parent": "virtio-9p-pci-base"
+ },
+ {
+ "name": "z990.3-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-tablet-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "virtio-mouse-pci",
+ "parent": "virtio-mouse-pci-base-type"
+ },
+ {
+ "name": "virtio-net-pci-non-transitional",
+ "parent": "virtio-net-pci-base"
+ },
+ {
+ "name": "s390-ccw-virtio-4.1-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "s390-tod-qemu",
+ "parent": "s390-tod"
+ },
+ {
+ "name": "vhost-user-scsi-pci",
+ "parent": "vhost-user-scsi-pci-base"
+ },
+ {
+ "name": "vfio-pci-igd-lpc-bridge",
+ "parent": "pci-device"
+ },
+ {
+ "name": "virtio-keyboard-pci",
+ "parent": "virtio-keyboard-pci-base-type"
+ },
+ {
+ "name": "ap-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "vhost-scsi-pci-transitional",
+ "parent": "vhost-scsi-pci-base"
+ },
+ {
+ "name": "vhost-scsi-pci",
+ "parent": "vhost-scsi-pci-base"
+ },
+ {
+ "name": "memory-backend-ram",
+ "parent": "memory-backend"
+ },
+ {
+ "name": "virtio-scsi-pci-transitional",
+ "parent": "virtio-scsi-pci-base"
+ },
+ {
+ "name": "z13s-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-balloon-pci",
+ "parent": "virtio-balloon-pci-base"
+ },
+ {
+ "name": "virtio-9p-pci-non-transitional",
+ "parent": "virtio-9p-pci-base"
+ },
+ {
+ "name": "qio-channel-file",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "z9EC-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "vhost-user-gpu",
+ "parent": "virtio-gpu-base"
+ },
+ {
+ "name": "gen15a-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "authz-list-file",
+ "parent": "authz"
+ },
+ {
+ "name": "x-terminal3270",
+ "parent": "emulated-ccw-3270"
+ },
+ {
+ "name": "z14ZR1-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-flic-kvm",
+ "parent": "s390-flic"
+ },
+ {
+ "name": "z14.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "chardev-pipe",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "chardev-parallel",
+ "parent": "chardev"
+ },
+ {
+ "name": "pci-bridge",
+ "parent": "base-pci-bridge"
+ },
+ {
+ "name": "vfio-ccw",
+ "parent": "s390-ccw"
+ },
+ {
+ "name": "z900.3-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z13.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-balloon-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "authz-simple",
+ "parent": "authz"
+ },
+ {
+ "name": "vhost-vsock-pci-transitional",
+ "parent": "vhost-vsock-pci-base"
+ },
+ {
+ "name": "z196.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "authz-list",
+ "parent": "authz"
+ },
+ {
+ "name": "chardev-ringbuf",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtio-tablet-ccw",
+ "parent": "virtio-input-hid-ccw"
+ },
+ {
+ "name": "kvm-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "System",
+ "parent": "bus"
+ },
+ {
+ "name": "zBC12-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "rng-egd",
+ "parent": "rng-backend"
+ },
+ {
+ "name": "cryptodev-backend-builtin",
+ "parent": "cryptodev-backend"
+ },
+ {
+ "name": "vhost-user-scsi",
+ "parent": "vhost-scsi-common"
+ },
+ {
+ "name": "virtio-rng-pci",
+ "parent": "virtio-rng-pci-base"
+ },
+ {
+ "name": "qio-channel-tls",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "z9BC.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "scsi-hd",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "z900.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-ccw-virtio-2.8-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "z9EC.3-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "scsi-block",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "s390-storage_attributes-qemu",
+ "parent": "s390-storage_attributes"
+ },
+ {
+ "name": "zEC12-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-pci-iommu",
+ "parent": "object"
+ },
+ {
+ "name": "z900-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z114-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "chardev-serial",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "qemu-console",
+ "parent": "object"
+ },
+ {
+ "name": "throttle-group",
+ "parent": "object"
+ },
+ {
+ "name": "sclplmconsole",
+ "parent": "s390-sclp-event-type"
+ },
+ {
+ "name": "virtio-9p-pci",
+ "parent": "virtio-9p-pci-base"
+ },
+ {
+ "name": "virtio-blk-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "chardev-socket",
+ "parent": "chardev"
+ },
+ {
+ "name": "qio-channel-buffer",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "zEC12-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-ccw-virtio-2.11-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "s390-tod-kvm",
+ "parent": "s390-tod"
+ },
+ {
+ "name": "irq",
+ "parent": "object"
+ },
+ {
+ "name": "virtio-balloon-pci-transitional",
+ "parent": "virtio-balloon-pci-base"
+ },
+ {
+ "name": "z10EC.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-ccw-virtio-2.5-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "qio-dns-resolver",
+ "parent": "object"
+ },
+ {
+ "name": "z10EC-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z900.3-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "usb-redir",
+ "parent": "usb-device"
+ },
+ {
+ "name": "chardev-file",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "z14ZR1-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-pcibus",
+ "parent": "bus"
+ },
+ {
+ "name": "virtserialport",
+ "parent": "virtio-serial-port"
+ },
+ {
+ "name": "z10BC-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "accel",
+ "parent": "object"
+ },
+ {
+ "name": "virtio-crypto-pci",
+ "parent": "virtio-crypto-pci-base-type"
+ },
+ {
+ "name": "vhost-user-blk-pci-transitional",
+ "parent": "vhost-user-blk-pci-base"
+ },
+ {
+ "name": "virtio-keyboard-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "z10BC.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-iommu-memory-region",
+ "parent": "qemu:iommu-memory-region"
+ },
+ {
+ "name": "virtio-serial-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "z9BC.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-gpu-device",
+ "parent": "virtio-gpu-base"
+ },
+ {
+ "name": "qio-channel-websock",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "z990.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z990-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z14-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "secret",
+ "parent": "object"
+ },
+ {
+ "name": "s390-ccw-virtio-3.0-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "virtio-pci-bus",
+ "parent": "virtio-bus"
+ },
+ {
+ "name": "s390-sclp-events-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "pr-manager-helper",
+ "parent": "pr-manager"
+ },
+ {
+ "name": "gen15b-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z990.4-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-gpu-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "qemu,register",
+ "parent": "device"
+ },
+ {
+ "name": "usb-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "max-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-pcihost",
+ "parent": "pci-host-bridge"
+ },
+ {
+ "name": "scsi-disk",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "chardev-memory",
+ "parent": "chardev-ringbuf"
+ },
+ {
+ "name": "z10EC.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "vhost-user-input",
+ "parent": "virtio-input-device"
+ },
+ {
+ "name": "cryptodev-vhost-user",
+ "parent": "cryptodev-backend"
+ },
+ {
+ "name": "cryptodev-backend",
+ "parent": "object"
+ },
+ {
+ "name": "virtio-input-host-device",
+ "parent": "virtio-input-device"
+ },
+ {
+ "name": "loader",
+ "parent": "device"
+ },
+ {
+ "name": "gen15a-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "sclp-cpu-hotplug",
+ "parent": "s390-sclp-event-type"
+ },
+ {
+ "name": "z800-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "iothread",
+ "parent": "object"
+ },
+ {
+ "name": "zEC12.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z10EC-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "vhost-user-blk-pci-non-transitional",
+ "parent": "vhost-user-blk-pci-base"
+ },
+ {
+ "name": "virtio-blk-pci-transitional",
+ "parent": "virtio-blk-pci-base"
+ },
+ {
+ "name": "vfio-pci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "z990.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "filter-rewriter",
+ "parent": "netfilter"
+ },
+ {
+ "name": "virtual-css-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "z900-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z10BC.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z9EC-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "chardev-braille",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtio-rng-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "vhost-user-scsi-pci-transitional",
+ "parent": "vhost-user-scsi-pci-base"
+ },
+ {
+ "name": "virtio-tablet-pci",
+ "parent": "virtio-tablet-pci-base-type"
+ },
+ {
+ "name": "z9EC.3-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-flic-qemu",
+ "parent": "s390-flic"
+ },
+ {
+ "name": "s390-ccw-virtio-2.9-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "fw_cfg_io",
+ "parent": "fw_cfg"
+ },
+ {
+ "name": "or-irq",
+ "parent": "device"
+ },
+ {
+ "name": "memory-backend-file",
+ "parent": "memory-backend"
+ },
+ {
+ "name": "container",
+ "parent": "object"
+ },
+ {
+ "name": "z114-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "qio-channel-socket",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "vhost-scsi",
+ "parent": "vhost-scsi-common"
+ },
+ {
+ "name": "virtio-rng-pci-transitional",
+ "parent": "virtio-rng-pci-base"
+ },
+ {
+ "name": "qemu:memory-region",
+ "parent": "object"
+ },
+ {
+ "name": "virtio-9p-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "qio-channel-rdma",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "qio-net-listener",
+ "parent": "object"
+ },
+ {
+ "name": "virtio-serial-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "scsi-generic",
+ "parent": "scsi-device"
+ },
+ {
+ "name": "s390-ccw-virtio-2.12-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "z890.3-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-input-host-pci",
+ "parent": "virtio-input-host-pci-base-type"
+ },
+ {
+ "name": "z196-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-net-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "z9EC.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-ccw-virtio-2.6-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "vfio-ap",
+ "parent": "ap-device"
+ },
+ {
+ "name": "memory-backend-memfd",
+ "parent": "memory-backend"
+ },
+ {
+ "name": "virtio-blk-pci",
+ "parent": "virtio-blk-pci-base"
+ },
+ {
+ "name": "z196.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z990-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z14.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "tcg-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "input-linux",
+ "parent": "object"
+ },
+ {
+ "name": "virtio-mouse-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "diag288",
+ "parent": "device"
+ },
+ {
+ "name": "z900.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "vhost-user-blk-pci",
+ "parent": "vhost-user-blk-pci-base"
+ },
+ {
+ "name": "z890-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-scsi-pci-non-transitional",
+ "parent": "virtio-scsi-pci-base"
+ },
+ {
+ "name": "z10EC.3-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-serial-pci-non-transitional",
+ "parent": "virtio-serial-pci-base"
+ },
+ {
+ "name": "z14-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "filter-buffer",
+ "parent": "netfilter"
+ },
+ {
+ "name": "z990.4-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "filter-dump",
+ "parent": "netfilter"
+ },
+ {
+ "name": "vhost-vsock-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "vhost-vsock-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "virtio-net-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "virtio-rng-pci-non-transitional",
+ "parent": "virtio-rng-pci-base"
+ },
+ {
+ "name": "virtio-scsi-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "s390-skeys-kvm",
+ "parent": "s390-skeys"
+ },
+ {
+ "name": "split-irq",
+ "parent": "device"
+ },
+ {
+ "name": "chardev-null",
+ "parent": "chardev"
+ },
+ {
+ "name": "filter-replay",
+ "parent": "netfilter"
+ },
+ {
+ "name": "z10EC.3-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "chardev-msmouse",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtio-mouse-ccw",
+ "parent": "virtio-input-hid-ccw"
+ },
+ {
+ "name": "s390-ipl",
+ "parent": "device"
+ },
+ {
+ "name": "z10BC-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-ccw-virtio-3.1-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "tls-creds-x509",
+ "parent": "tls-creds"
+ },
+ {
+ "name": "virtio-keyboard-ccw",
+ "parent": "virtio-input-hid-ccw"
+ },
+ {
+ "name": "z13-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-crypto-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "virtio-balloon-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "vhost-scsi-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "s390-storage_attributes-kvm",
+ "parent": "s390-storage_attributes"
+ },
+ {
+ "name": "rng-random",
+ "parent": "rng-backend"
+ },
+ {
+ "name": "z990.3-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "vhost-vsock-pci-non-transitional",
+ "parent": "vhost-vsock-pci-base"
+ },
+ {
+ "name": "zEC12.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "qtest-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "zBC12-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "migration",
+ "parent": "device"
+ },
+ {
+ "name": "s390-ccw-virtio-4.0-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "tls-creds-anon",
+ "parent": "tls-creds"
+ },
+ {
+ "name": "s390-flic",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "z890.3-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "chardev-gdb",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtio-gpu-pci",
+ "parent": "virtio-gpu-pci-base-type"
+ },
+ {
+ "name": "unimplemented-device",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "scsi-cd",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "z990.5-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "gen15b-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "sclp",
+ "parent": "device"
+ },
+ {
+ "name": "qemu-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "fw_cfg_mem",
+ "parent": "fw_cfg"
+ },
+ {
+ "name": "filter-redirector",
+ "parent": "netfilter"
+ },
+ {
+ "name": "vhost-scsi-pci-non-transitional",
+ "parent": "vhost-scsi-pci-base"
+ },
+ {
+ "name": "chardev-hci",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtio-serial-pci-transitional",
+ "parent": "virtio-serial-pci-base"
+ },
+ {
+ "name": "vhost-user-gpu-pci",
+ "parent": "vhost-user-gpu-pci-base-type"
+ }
+ ],
+ "id": "libvirt-6"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-blk-pci"
+ },
+ "id": "libvirt-7"
+}
+
+{
+ "return": [
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "num-queues",
+ "type": "uint16"
+ },
+ {
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "name": "queue-size",
+ "type": "uint16"
+ },
+ {
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "secs",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "cyls",
+ "type": "uint32"
+ },
+ {
+ "name": "heads",
+ "type": "uint32"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-blk-device>"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "config-wce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max-write-zeroes-sectors",
+ "type": "uint32"
+ },
+ {
+ "name": "physical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "scsi",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "logical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "write-zeroes",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max-discard-sectors",
+ "type": "uint32"
+ },
+ {
+ "name": "request-merging",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "discard",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "class",
+ "type": "uint32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-7"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-net-pci"
+ },
+ "id": "libvirt-8"
+}
+
+{
+ "return": [
+ {
+ "name": "ctrl_vlan",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "duplex",
+ "type": "str"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-net-device>"
+ },
+ {
+ "name": "x-txtimer",
+ "type": "uint32"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "status",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_mac_addr",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "type": "int32"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mac",
+ "description": "Ethernet 6-byte MAC Address, example: 52:54:00:12:34:56",
+ "type": "str"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "netdev",
+ "description": "ID of a netdev to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-mtu-bypass-backend",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_announce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "host_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rx_queue_size",
+ "type": "uint16"
+ },
+ {
+ "name": "tx_queue_size",
+ "type": "uint16"
+ },
+ {
+ "name": "host_ecn",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_rx_extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "x-txburst",
+ "type": "int32"
+ },
+ {
+ "name": "csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mrg_rxbuf",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "gso",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_mtu",
+ "type": "uint16"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "tx",
+ "type": "str"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_rsc_ext",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "rsc_interval",
+ "type": "uint32"
+ },
+ {
+ "name": "ctrl_guest_offloads",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "ctrl_rx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_ecn",
+ "description": "on/off",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-8"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-scsi-pci"
+ },
+ "id": "libvirt-9"
+}
+
+{
+ "return": [
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "param_change",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_sectors",
+ "type": "uint32"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-scsi-device>"
+ },
+ {
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "name": "virtqueue_size",
+ "type": "uint32"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "num_queues",
+ "type": "uint32"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "hotplug",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "cmd_per_lun",
+ "type": "uint32"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-9"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-blk-ccw"
+ },
+ "id": "libvirt-10"
+}
+
+{
+ "return": [
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "name": "queue-size",
+ "type": "uint16"
+ },
+ {
+ "name": "secs",
+ "type": "uint32"
+ },
+ {
+ "name": "cyls",
+ "type": "uint32"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "num-queues",
+ "type": "uint16"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "heads",
+ "type": "uint32"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-blk-device>"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "config-wce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "physical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "scsi",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "logical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "name": "max-discard-sectors",
+ "type": "uint32"
+ },
+ {
+ "name": "discard",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "request-merging",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "write-zeroes",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max-write-zeroes-sectors",
+ "type": "uint32"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "devno",
+ "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+ "type": "str"
+ },
+ {
+ "name": "max_revision",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-10"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-net-ccw"
+ },
+ "id": "libvirt-11"
+}
+
+{
+ "return": [
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mac",
+ "description": "Ethernet 6-byte MAC Address, example: 52:54:00:12:34:56",
+ "type": "str"
+ },
+ {
+ "name": "x-txtimer",
+ "type": "uint32"
+ },
+ {
+ "name": "gso",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mrg_rxbuf",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-txburst",
+ "type": "int32"
+ },
+ {
+ "name": "host_mtu",
+ "type": "uint16"
+ },
+ {
+ "name": "tx",
+ "type": "str"
+ },
+ {
+ "name": "status",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-net-device>"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "ctrl_mac_addr",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "tx_queue_size",
+ "type": "uint16"
+ },
+ {
+ "name": "guest_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_guest_offloads",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_ecn",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_ecn",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_rsc_ext",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "duplex",
+ "type": "str"
+ },
+ {
+ "name": "rsc_interval",
+ "type": "uint32"
+ },
+ {
+ "name": "guest_announce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "netdev",
+ "description": "ID of a netdev to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "host_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-mtu-bypass-backend",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_rx_extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rx_queue_size",
+ "type": "uint16"
+ },
+ {
+ "name": "guest_csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "speed",
+ "type": "int32"
+ },
+ {
+ "name": "ctrl_rx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_vlan",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "devno",
+ "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+ "type": "str"
+ },
+ {
+ "name": "csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_revision",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-11"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-scsi-ccw"
+ },
+ "id": "libvirt-12"
+}
+
+{
+ "return": [
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "hotplug",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "num_queues",
+ "type": "uint32"
+ },
+ {
+ "name": "max_sectors",
+ "type": "uint32"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "param_change",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "name": "virtqueue_size",
+ "type": "uint32"
+ },
+ {
+ "name": "devno",
+ "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+ "type": "str"
+ },
+ {
+ "name": "cmd_per_lun",
+ "type": "uint32"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_revision",
+ "type": "uint32"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-scsi-device>"
+ }
+ ],
+ "id": "libvirt-12"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-net-s390"
+ },
+ "id": "libvirt-13"
+}
+
+{
+ "id": "libvirt-13",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-net-s390' not found"
+ }
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "vfio-pci"
+ },
+ "id": "libvirt-14"
+}
+
+{
+ "return": [
+ {
+ "name": "x-pci-sub-device-id",
+ "type": "uint32"
+ },
+ {
+ "name": "x-no-kvm-intx",
+ "type": "bool"
+ },
+ {
+ "name": "x-pci-device-id",
+ "type": "uint32"
+ },
+ {
+ "name": "x-no-kvm-msi",
+ "type": "bool"
+ },
+ {
+ "name": "xres",
+ "type": "uint32"
+ },
+ {
+ "name": "display",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "x-no-mmap",
+ "type": "bool"
+ },
+ {
+ "name": "x-pci-sub-vendor-id",
+ "type": "uint32"
+ },
+ {
+ "name": "x-msix-relocation",
+ "description": "off/auto/bar0/bar1/bar2/bar3/bar4/bar5",
+ "type": "OffAutoPCIBAR"
+ },
+ {
+ "name": "x-req",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-no-kvm-ioeventfd",
+ "type": "bool"
+ },
+ {
+ "name": "x-pci-vendor-id",
+ "type": "uint32"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-nv-gpudirect-clique",
+ "description": "NVIDIA GPUDirect Clique ID (0 - 15)",
+ "type": "uint4"
+ },
+ {
+ "name": "x-no-vfio-ioeventfd",
+ "type": "bool"
+ },
+ {
+ "name": "x-intx-mmap-timeout-ms",
+ "type": "uint32"
+ },
+ {
+ "name": "x-igd-gms",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "sysfsdev",
+ "type": "str"
+ },
+ {
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "x-vga",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-igd-opregion",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-no-kvm-msix",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "host",
+ "description": "Address (bus/device/function) of the host device, example: 04:10.0",
+ "type": "str"
+ },
+ {
+ "name": "x-no-geforce-quirks",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-balloon-allowed",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-14"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "scsi-hd"
+ },
+ "id": "libvirt-15"
+}
+
+{
+ "return": [
+ {
+ "name": "scsi-id",
+ "type": "uint32"
+ },
+ {
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "name": "ver",
+ "type": "str"
+ },
+ {
+ "name": "scsi_version",
+ "type": "int32"
+ },
+ {
+ "name": "removable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rotation_rate",
+ "type": "uint16"
+ },
+ {
+ "name": "max_unmap_size",
+ "type": "uint64"
+ },
+ {
+ "name": "cyls",
+ "type": "uint32"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "secs",
+ "type": "uint32"
+ },
+ {
+ "name": "product",
+ "type": "str"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "heads",
+ "type": "uint32"
+ },
+ {
+ "name": "lun",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "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"
+ },
+ {
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "wwn",
+ "type": "uint64"
+ },
+ {
+ "name": "vendor",
+ "type": "str"
+ },
+ {
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "physical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "channel",
+ "type": "uint32"
+ },
+ {
+ "name": "max_io_size",
+ "type": "uint64"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "logical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "port_wwn",
+ "type": "uint64"
+ },
+ {
+ "name": "port_index",
+ "type": "uint16"
+ },
+ {
+ "name": "device_id",
+ "type": "str"
+ }
+ ],
+ "id": "libvirt-15"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "ide-hd"
+ },
+ "id": "libvirt-16"
+}
+
+{
+ "id": "libvirt-16",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'ide-hd' not found"
+ }
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "PIIX4_PM"
+ },
+ "id": "libvirt-17"
+}
+
+{
+ "id": "libvirt-17",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'PIIX4_PM' not found"
+ }
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "usb-redir"
+ },
+ "id": "libvirt-18"
+}
+
+{
+ "return": [
+ {
+ "name": "chardev",
+ "description": "ID of a chardev to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "debug",
+ "type": "uint8"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "streams",
+ "type": "bool"
+ },
+ {
+ "name": "attached",
+ "type": "bool"
+ },
+ {
+ "name": "msos-desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "filter",
+ "type": "str"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "full-path",
+ "description": "on/off",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-18"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "i440FX-pcihost"
+ },
+ "id": "libvirt-19"
+}
+
+{
+ "id": "libvirt-19",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'i440FX-pcihost' not found"
+ }
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "q35-pcihost"
+ },
+ "id": "libvirt-20"
+}
+
+{
+ "id": "libvirt-20",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'q35-pcihost' not found"
+ }
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "kvm-pit"
+ },
+ "id": "libvirt-21"
+}
+
+{
+ "id": "libvirt-21",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'kvm-pit' not found"
+ }
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-gpu-pci"
+ },
+ "id": "libvirt-22"
+}
+
+{
+ "return": [
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "max_outputs",
+ "type": "uint32"
+ },
+ {
+ "name": "xres",
+ "type": "uint32"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-gpu-device>"
+ },
+ {
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "stats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_hostmem",
+ "type": "size"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "name": "edid",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virgl",
+ "description": "on/off",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-22"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-gpu-device"
+ },
+ "id": "libvirt-23"
+}
+
+{
+ "return": [
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "stats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "edid",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_hostmem",
+ "type": "size"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "name": "virgl",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_outputs",
+ "type": "uint32"
+ },
+ {
+ "name": "xres",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-23"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "ICH9-LPC"
+ },
+ "id": "libvirt-24"
+}
+
+{
+ "id": "libvirt-24",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'ICH9-LPC' not found"
+ }
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-balloon-pci"
+ },
+ "id": "libvirt-25"
+}
+
+{
+ "return": [
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "qemu-4-0-config-size",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-balloon-device>"
+ },
+ {
+ "name": "guest-stats-polling-interval",
+ "type": "int"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest-stats",
+ "type": "guest statistics"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "free-page-hint",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "deflate-on-oom",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "class",
+ "type": "uint32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-25"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-balloon-ccw"
+ },
+ "id": "libvirt-26"
+}
+
+{
+ "return": [
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "deflate-on-oom",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest-stats",
+ "type": "guest statistics"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "guest-stats-polling-interval",
+ "type": "int"
+ },
+ {
+ "name": "qemu-4-0-config-size",
+ "type": "bool"
+ },
+ {
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "name": "free-page-hint",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "devno",
+ "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+ "type": "str"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_revision",
+ "type": "uint32"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-balloon-device>"
+ }
+ ],
+ "id": "libvirt-26"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-balloon-device"
+ },
+ "id": "libvirt-27"
+}
+
+{
+ "return": [
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest-stats-polling-interval",
+ "type": "int"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "deflate-on-oom",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest-stats",
+ "type": "guest statistics"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "qemu-4-0-config-size",
+ "type": "bool"
+ },
+ {
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "name": "free-page-hint",
+ "description": "on/off",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-27"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-gpu-ccw"
+ },
+ "id": "libvirt-28"
+}
+
+{
+ "return": [
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "name": "stats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "edid",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_hostmem",
+ "type": "size"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virgl",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "devno",
+ "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+ "type": "str"
+ },
+ {
+ "name": "max_revision",
+ "type": "uint32"
+ },
+ {
+ "name": "max_outputs",
+ "type": "uint32"
+ },
+ {
+ "name": "xres",
+ "type": "uint32"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-gpu-device>"
+ }
+ ],
+ "id": "libvirt-28"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtual-css-bridge"
+ },
+ "id": "libvirt-29"
+}
+
+{
+ "return": [
+ {
+ "name": "cssid-unrestricted",
+ "description": "A css device can use any cssid, regardless whether virtual or not (read only, always true)",
+ "type": "bool"
+ },
+ {
+ "name": "css_dev_path",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-29"
+}
+
+{
+ "execute": "qom-list-properties",
+ "arguments": {
+ "typename": "memory-backend-file"
+ },
+ "id": "libvirt-30"
+}
+
+{
+ "return": [
+ {
+ "name": "type",
+ "type": "string"
+ },
+ {
+ "name": "dump",
+ "description": "Set to 'off' to exclude from core dump",
+ "type": "bool"
+ },
+ {
+ "name": "share",
+ "description": "Mark the memory as private to QEMU or shared",
+ "type": "bool"
+ },
+ {
+ "name": "x-use-canonical-path-for-ramblock-id",
+ "type": "bool"
+ },
+ {
+ "name": "policy",
+ "description": "Set the NUMA policy",
+ "type": "HostMemPolicy"
+ },
+ {
+ "name": "size",
+ "description": "Size of the memory region (ex: 500M)",
+ "type": "int"
+ },
+ {
+ "name": "prealloc",
+ "description": "Preallocate memory",
+ "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": "align",
+ "type": "int"
+ },
+ {
+ "name": "pmem",
+ "type": "bool"
+ },
+ {
+ "name": "mem-path",
+ "type": "string"
+ },
+ {
+ "name": "discard-data",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-30"
+}
+
+{
+ "execute": "qom-list-properties",
+ "arguments": {
+ "typename": "memory-backend-memfd"
+ },
+ "id": "libvirt-31"
+}
+
+{
+ "return": [
+ {
+ "name": "type",
+ "type": "string"
+ },
+ {
+ "name": "dump",
+ "description": "Set to 'off' to exclude from core dump",
+ "type": "bool"
+ },
+ {
+ "name": "share",
+ "description": "Mark the memory as private to QEMU or shared",
+ "type": "bool"
+ },
+ {
+ "name": "x-use-canonical-path-for-ramblock-id",
+ "type": "bool"
+ },
+ {
+ "name": "policy",
+ "description": "Set the NUMA policy",
+ "type": "HostMemPolicy"
+ },
+ {
+ "name": "size",
+ "description": "Size of the memory region (ex: 500M)",
+ "type": "int"
+ },
+ {
+ "name": "prealloc",
+ "description": "Preallocate memory",
+ "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-31"
+}
+
+{
+ "execute": "query-machines",
+ "id": "libvirt-32"
+}
+
+{
+ "return": [
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-4.0",
+ "numa-mem-supported": false,
+ "cpu-max": 248,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-3.1",
+ "numa-mem-supported": false,
+ "cpu-max": 248,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-2.6",
+ "numa-mem-supported": false,
+ "cpu-max": 248,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-2.12",
+ "numa-mem-supported": false,
+ "cpu-max": 248,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-2.9",
+ "numa-mem-supported": false,
+ "cpu-max": 248,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-3.0",
+ "numa-mem-supported": false,
+ "cpu-max": 248,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-2.5",
+ "numa-mem-supported": false,
+ "cpu-max": 248,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-2.11",
+ "numa-mem-supported": false,
+ "cpu-max": 248,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-2.8",
+ "numa-mem-supported": false,
+ "cpu-max": 248,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-4.1",
+ "numa-mem-supported": false,
+ "is-default": true,
+ "cpu-max": 248,
+ "deprecated": false,
+ "alias": "s390-ccw-virtio"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "none",
+ "numa-mem-supported": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-2.4",
+ "numa-mem-supported": false,
+ "cpu-max": 248,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-2.10",
+ "numa-mem-supported": false,
+ "cpu-max": 248,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-2.7",
+ "numa-mem-supported": false,
+ "cpu-max": 248,
+ "deprecated": false
+ }
+ ],
+ "id": "libvirt-32"
+}
+
+{
+ "execute": "query-cpu-definitions",
+ "id": "libvirt-33"
+}
+
+{
+ "return": [
+ {
+ "name": "z800-base",
+ "typename": "z800-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.2-base",
+ "typename": "z890.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.2",
+ "typename": "z9EC.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13.2",
+ "typename": "z13.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC-base",
+ "typename": "z9BC-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.5-base",
+ "typename": "z990.5-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.2",
+ "typename": "z890.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z890",
+ "typename": "z890-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC",
+ "typename": "z9BC-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13",
+ "typename": "z13-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z196",
+ "typename": "z196-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13s",
+ "typename": "z13s-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "host",
+ "typename": "host-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": false
+ },
+ {
+ "name": "z990.3",
+ "typename": "z990.3-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13s-base",
+ "typename": "z13s-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC",
+ "typename": "z9EC-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "gen15a",
+ "typename": "gen15a-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z14ZR1-base",
+ "typename": "z14ZR1-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z14.2-base",
+ "typename": "z14.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.3-base",
+ "typename": "z900.3-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z13.2-base",
+ "typename": "z13.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z196.2-base",
+ "typename": "z196.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zBC12-base",
+ "typename": "zBC12-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC.2-base",
+ "typename": "z9BC.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.2-base",
+ "typename": "z900.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.3",
+ "typename": "z9EC.3-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12",
+ "typename": "zEC12-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z900",
+ "typename": "z900-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z114-base",
+ "typename": "z114-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12-base",
+ "typename": "zEC12-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.2",
+ "typename": "z10EC.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC-base",
+ "typename": "z10EC-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.3",
+ "typename": "z900.3-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z14ZR1",
+ "typename": "z14ZR1-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC",
+ "typename": "z10BC-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC.2-base",
+ "typename": "z10BC.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC.2",
+ "typename": "z9BC.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.2",
+ "typename": "z990.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990",
+ "typename": "z990-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z14",
+ "typename": "z14-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "gen15b-base",
+ "typename": "gen15b-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.4",
+ "typename": "z990.4-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "max",
+ "typename": "max-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": false
+ },
+ {
+ "name": "z10EC.2-base",
+ "typename": "z10EC.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "gen15a-base",
+ "typename": "gen15a-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z800",
+ "typename": "z800-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12.2",
+ "typename": "zEC12.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC",
+ "typename": "z10EC-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.2-base",
+ "typename": "z990.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900-base",
+ "typename": "z900-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC.2",
+ "typename": "z10BC.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC-base",
+ "typename": "z9EC-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.3-base",
+ "typename": "z9EC.3-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z114",
+ "typename": "z114-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.3",
+ "typename": "z890.3-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z196-base",
+ "typename": "z196-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.2-base",
+ "typename": "z9EC.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z196.2",
+ "typename": "z196.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990-base",
+ "typename": "z990-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z14.2",
+ "typename": "z14.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.2",
+ "typename": "z900.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z890-base",
+ "typename": "z890-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.3",
+ "typename": "z10EC.3-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z14-base",
+ "typename": "z14-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.4-base",
+ "typename": "z990.4-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.3-base",
+ "typename": "z10EC.3-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC-base",
+ "typename": "z10BC-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z13-base",
+ "typename": "z13-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.3-base",
+ "typename": "z990.3-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12.2-base",
+ "typename": "zEC12.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zBC12",
+ "typename": "zBC12-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.3-base",
+ "typename": "z890.3-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.5",
+ "typename": "z990.5-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "gen15b",
+ "typename": "gen15b-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "qemu",
+ "typename": "qemu-s390x-cpu",
+ "unavailable-features": [
+ "ais"
+ ],
+ "static": false,
+ "migration-safe": true
+ }
+ ],
+ "id": "libvirt-33"
+}
+
+{
+ "execute": "query-tpm-models",
+ "id": "libvirt-34"
+}
+
+{
+ "return": [
+ ],
+ "id": "libvirt-34"
+}
+
+{
+ "execute": "query-tpm-types",
+ "id": "libvirt-35"
+}
+
+{
+ "return": [
+ ],
+ "id": "libvirt-35"
+}
+
+{
+ "execute": "query-command-line-options",
+ "id": "libvirt-36"
+}
+
+{
+ "return": [
+ {
+ "parameters": [
+ {
+ "name": "timeout",
+ "help": "Request timeout in seconds (default 0 = no timeout)",
+ "type": "number"
+ },
+ {
+ "name": "initiator-name",
+ "help": "Initiator iqn name to use when connecting",
+ "type": "string"
+ },
+ {
+ "name": "header-digest",
+ "help": "HeaderDigest setting. {CRC32C|CRC32C-NONE|NONE-CRC32C|NONE}",
+ "type": "string"
+ },
+ {
+ "name": "password-secret",
+ "help": "ID of the secret providing password for CHAP authentication to target",
+ "type": "string"
+ },
+ {
+ "name": "password",
+ "help": "password for CHAP authentication to target",
+ "type": "string"
+ },
+ {
+ "name": "user",
+ "help": "username for CHAP authentication to target",
+ "type": "string"
+ }
+ ],
+ "option": "iscsi"
+ },
+ {
+ "parameters": [
+ {
+ "name": "non-adaptive",
+ "type": "boolean"
+ },
+ {
+ "name": "lossy",
+ "type": "boolean"
+ },
+ {
+ "name": "sasl-authz",
+ "type": "string"
+ },
+ {
+ "name": "tls-authz",
+ "type": "string"
+ },
+ {
+ "name": "acl",
+ "type": "boolean"
+ },
+ {
+ "name": "sasl",
+ "type": "boolean"
+ },
+ {
+ "name": "key-delay-ms",
+ "type": "number"
+ },
+ {
+ "name": "lock-key-sync",
+ "type": "boolean"
+ },
+ {
+ "name": "reverse",
+ "type": "boolean"
+ },
+ {
+ "name": "password",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv6",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv4",
+ "type": "boolean"
+ },
+ {
+ "name": "to",
+ "type": "number"
+ },
+ {
+ "name": "connections",
+ "type": "number"
+ },
+ {
+ "name": "head",
+ "type": "number"
+ },
+ {
+ "name": "display",
+ "type": "string"
+ },
+ {
+ "name": "share",
+ "type": "string"
+ },
+ {
+ "name": "tls-creds",
+ "type": "string"
+ },
+ {
+ "name": "websocket",
+ "type": "string"
+ },
+ {
+ "name": "vnc",
+ "type": "string"
+ }
+ ],
+ "option": "vnc"
+ },
+ {
+ "parameters": [
+ {
+ "name": "dmode",
+ "type": "number"
+ },
+ {
+ "name": "fmode",
+ "type": "number"
+ },
+ {
+ "name": "sock_fd",
+ "type": "number"
+ },
+ {
+ "name": "socket",
+ "type": "string"
+ },
+ {
+ "name": "readonly",
+ "type": "boolean"
+ },
+ {
+ "name": "writeout",
+ "type": "string"
+ },
+ {
+ "name": "security_model",
+ "type": "string"
+ },
+ {
+ "name": "mount_tag",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "fsdriver",
+ "type": "string"
+ }
+ ],
+ "option": "virtfs"
+ },
+ {
+ "parameters": [
+ {
+ "name": "throttling.iops-size",
+ "help": "when limiting by iops max size of an I/O in bytes",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max-length",
+ "help": "length of the bps-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max-length",
+ "help": "length of the bps-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max-length",
+ "help": "length of the bps-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max-length",
+ "help": "length of the iops-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max-length",
+ "help": "length of the iops-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max-length",
+ "help": "length of the iops-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max",
+ "help": "total bytes write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max",
+ "help": "total bytes read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max",
+ "help": "total bytes burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max",
+ "help": "I/O operations write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max",
+ "help": "I/O operations read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max",
+ "help": "I/O operations burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write",
+ "help": "limit write bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read",
+ "help": "limit read bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total",
+ "help": "limit total bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write",
+ "help": "limit write operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read",
+ "help": "limit read operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total",
+ "help": "limit total I/O operations per second",
+ "type": "number"
+ },
+ {
+ "name": "dmode",
+ "type": "number"
+ },
+ {
+ "name": "fmode",
+ "type": "number"
+ },
+ {
+ "name": "sock_fd",
+ "type": "number"
+ },
+ {
+ "name": "socket",
+ "type": "string"
+ },
+ {
+ "name": "readonly",
+ "type": "boolean"
+ },
+ {
+ "name": "writeout",
+ "type": "string"
+ },
+ {
+ "name": "security_model",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "fsdriver",
+ "type": "string"
+ }
+ ],
+ "option": "fsdev"
+ },
+ {
+ "parameters": [
+ {
+ "name": "resourcecontrol",
+ "type": "string"
+ },
+ {
+ "name": "spawn",
+ "type": "string"
+ },
+ {
+ "name": "elevateprivileges",
+ "type": "string"
+ },
+ {
+ "name": "obsolete",
+ "type": "string"
+ },
+ {
+ "name": "enable",
+ "type": "boolean"
+ }
+ ],
+ "option": "sandbox"
+ },
+ {
+ "parameters": [
+ {
+ "name": "string",
+ "help": "Sets content of the blob to be inserted from a string",
+ "type": "string"
+ },
+ {
+ "name": "file",
+ "help": "Sets the name of the file from which 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": [
+ ],
+ "option": ""
+ },
+ {
+ "parameters": [
+ {
+ "name": "rrsnapshot",
+ "type": "string"
+ },
+ {
+ "name": "rrfile",
+ "type": "string"
+ },
+ {
+ "name": "rr",
+ "type": "string"
+ },
+ {
+ "name": "sleep",
+ "type": "boolean"
+ },
+ {
+ "name": "align",
+ "type": "boolean"
+ },
+ {
+ "name": "shift",
+ "type": "string"
+ }
+ ],
+ "option": "icount"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "numa"
+ },
+ {
+ "parameters": [
+ {
+ "name": "debug-threads",
+ "help": "When enabled, name the individual threads; defaults off.\nNOTE: The thread names are for debugging and not a\nstable API.",
+ "type": "boolean"
+ },
+ {
+ "name": "process",
+ "help": "Sets the name of the QEMU process, as shown in top etc",
+ "type": "string"
+ },
+ {
+ "name": "guest",
+ "help": "Sets the name of the guest.\nThis name will be displayed in the SDL window caption.\nThe name will also be used for the VNC server",
+ "type": "string"
+ }
+ ],
+ "option": "name"
+ },
+ {
+ "parameters": [
+ {
+ "name": "timestamp",
+ "type": "boolean"
+ }
+ ],
+ "option": "msg"
+ },
+ {
+ "parameters": [
+ {
+ "name": "cpu-pm",
+ "type": "boolean"
+ },
+ {
+ "name": "mem-lock",
+ "type": "boolean"
+ }
+ ],
+ "option": "overcommit"
+ },
+ {
+ "parameters": [
+ {
+ "name": "mlock",
+ "type": "boolean"
+ }
+ ],
+ "option": "realtime"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "tpmdev"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "object"
+ },
+ {
+ "parameters": [
+ {
+ "name": "opaque",
+ "help": "free-form string used to describe fd",
+ "type": "string"
+ },
+ {
+ "name": "set",
+ "help": "ID of the fd set to add fd to",
+ "type": "number"
+ },
+ {
+ "name": "fd",
+ "help": "file descriptor of which a duplicate is added to fd set",
+ "type": "number"
+ }
+ ],
+ "option": "add-fd"
+ },
+ {
+ "parameters": [
+ {
+ "name": "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": "dies",
+ "type": "number"
+ },
+ {
+ "name": "sockets",
+ "type": "number"
+ },
+ {
+ "name": "cpus",
+ "type": "number"
+ }
+ ],
+ "option": "smp-opts"
+ },
+ {
+ "parameters": [
+ {
+ "name": "maxmem",
+ "type": "size"
+ },
+ {
+ "name": "slots",
+ "type": "number"
+ },
+ {
+ "name": "size",
+ "type": "size"
+ }
+ ],
+ "option": "memory"
+ },
+ {
+ "parameters": [
+ {
+ "name": "thread",
+ "help": "Enable/disable multi-threaded TCG",
+ "type": "string"
+ },
+ {
+ "name": "accel",
+ "help": "Select the type of accelerator",
+ "type": "string"
+ }
+ ],
+ "option": "accel"
+ },
+ {
+ "parameters": [
+ {
+ "name": "loadparm",
+ "help": "Up to 8 chars in set of [A-Za-z0-9. ](lower case chars converted to upper case) to pass to machine loader, boot manager, and guest kernel",
+ "type": "string"
+ },
+ {
+ "name": "dea-key-wrap",
+ "help": "enable/disable DEA key wrapping using the CPACF wrapping key",
+ "type": "boolean"
+ },
+ {
+ "name": "aes-key-wrap",
+ "help": "enable/disable AES key wrapping using the CPACF wrapping key",
+ "type": "boolean"
+ },
+ {
+ "name": "suppress-vmdesc",
+ "help": "Set on to disable self-describing migration",
+ "type": "boolean"
+ },
+ {
+ "name": "iommu",
+ "help": "Set on/off to enable/disable Intel IOMMU (VT-d)",
+ "type": "boolean"
+ },
+ {
+ "name": "firmware",
+ "help": "firmware image",
+ "type": "string"
+ },
+ {
+ "name": "usb",
+ "help": "Set on/off to enable/disable usb",
+ "type": "boolean"
+ },
+ {
+ "name": "mem-merge",
+ "help": "enable/disable memory merge support",
+ "type": "boolean"
+ },
+ {
+ "name": "dump-guest-core",
+ "help": "Include guest memory in a core dump",
+ "type": "boolean"
+ },
+ {
+ "name": "dt_compatible",
+ "help": "Overrides the \"compatible\" property of the dt root node",
+ "type": "string"
+ },
+ {
+ "name": "phandle_start",
+ "help": "The first phandle ID we may generate dynamically",
+ "type": "number"
+ },
+ {
+ "name": "dumpdtb",
+ "help": "Dump current dtb to a file and quit",
+ "type": "string"
+ },
+ {
+ "name": "dtb",
+ "help": "Linux kernel device tree file",
+ "type": "string"
+ },
+ {
+ "name": "append",
+ "help": "Linux kernel command line",
+ "type": "string"
+ },
+ {
+ "name": "initrd",
+ "help": "Linux initial ramdisk file",
+ "type": "string"
+ },
+ {
+ "name": "kernel",
+ "help": "Linux kernel image file",
+ "type": "string"
+ },
+ {
+ "name": "kvm_shadow_mem",
+ "help": "KVM shadow MMU size",
+ "type": "size"
+ },
+ {
+ "name": "kernel_irqchip",
+ "help": "use KVM in-kernel irqchip",
+ "type": "boolean"
+ },
+ {
+ "name": "accel",
+ "help": "accelerator list",
+ "type": "string"
+ },
+ {
+ "name": "type",
+ "help": "emulated machine",
+ "type": "string"
+ }
+ ],
+ "option": "machine"
+ },
+ {
+ "parameters": [
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "bootindex",
+ "type": "number"
+ }
+ ],
+ "option": "option-rom"
+ },
+ {
+ "parameters": [
+ {
+ "name": "file",
+ "type": "string"
+ },
+ {
+ "name": "events",
+ "type": "string"
+ },
+ {
+ "name": "enable",
+ "type": "string"
+ }
+ ],
+ "option": "trace"
+ },
+ {
+ "parameters": [
+ {
+ "name": "pretty",
+ "type": "boolean"
+ },
+ {
+ "name": "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": "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",
+ "type": "number"
+ },
+ {
+ "name": "delay",
+ "type": "boolean"
+ },
+ {
+ "name": "server",
+ "type": "boolean"
+ },
+ {
+ "name": "wait",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv6",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv4",
+ "type": "boolean"
+ },
+ {
+ "name": "to",
+ "type": "number"
+ },
+ {
+ "name": "localport",
+ "type": "string"
+ },
+ {
+ "name": "localaddr",
+ "type": "string"
+ },
+ {
+ "name": "fd",
+ "type": "string"
+ },
+ {
+ "name": "port",
+ "type": "string"
+ },
+ {
+ "name": "host",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "backend",
+ "type": "string"
+ }
+ ],
+ "option": "chardev"
+ },
+ {
+ "parameters": [
+ {
+ "name": "copy-on-read",
+ "help": "copy read data from backing file into image file",
+ "type": "boolean"
+ },
+ {
+ "name": "werror",
+ "help": "write error action",
+ "type": "string"
+ },
+ {
+ "name": "rerror",
+ "help": "read error action",
+ "type": "string"
+ },
+ {
+ "name": "read-only",
+ "help": "open drive file as read-only",
+ "type": "boolean"
+ },
+ {
+ "name": "file",
+ "help": "file name",
+ "type": "string"
+ },
+ {
+ "name": "if",
+ "help": "interface (ide, scsi, sd, mtd, floppy, pflash, virtio)",
+ "type": "string"
+ },
+ {
+ "name": "media",
+ "help": "media type (disk, cdrom)",
+ "type": "string"
+ },
+ {
+ "name": "index",
+ "help": "index number",
+ "type": "number"
+ },
+ {
+ "name": "unit",
+ "help": "unit number (i.e. lun for scsi)",
+ "type": "number"
+ },
+ {
+ "name": "bus",
+ "help": "bus number",
+ "type": "number"
+ },
+ {
+ "name": "stats-account-failed",
+ "help": "whether to account for failed I/O operations in the statistics",
+ "type": "boolean"
+ },
+ {
+ "name": "stats-account-invalid",
+ "help": "whether to account for invalid I/O operations in the statistics",
+ "type": "boolean"
+ },
+ {
+ "name": "detect-zeroes",
+ "help": "try to optimize zero writes (off, on, unmap)",
+ "type": "string"
+ },
+ {
+ "name": "throttling.group",
+ "help": "name of the block throttling group",
+ "type": "string"
+ },
+ {
+ "name": "throttling.iops-size",
+ "help": "when limiting by iops max size of an I/O in bytes",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max-length",
+ "help": "length of the bps-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max-length",
+ "help": "length of the bps-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max-length",
+ "help": "length of the bps-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max-length",
+ "help": "length of the iops-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max-length",
+ "help": "length of the iops-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max-length",
+ "help": "length of the iops-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max",
+ "help": "total bytes write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max",
+ "help": "total bytes read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max",
+ "help": "total bytes burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max",
+ "help": "I/O operations write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max",
+ "help": "I/O operations read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max",
+ "help": "I/O operations burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write",
+ "help": "limit write bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read",
+ "help": "limit read bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total",
+ "help": "limit total bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write",
+ "help": "limit write operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read",
+ "help": "limit read operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total",
+ "help": "limit total I/O operations per second",
+ "type": "number"
+ },
+ {
+ "name": "werror",
+ "help": "write error action",
+ "type": "string"
+ },
+ {
+ "name": "format",
+ "help": "disk format (raw, qcow2, ...)",
+ "type": "string"
+ },
+ {
+ "name": "cache.writeback",
+ "help": "Enable writeback mode",
+ "type": "boolean"
+ },
+ {
+ "name": "aio",
+ "help": "host AIO implementation (threads, native)",
+ "type": "string"
+ },
+ {
+ "name": "snapshot",
+ "help": "enable/disable snapshot mode",
+ "type": "boolean"
+ },
+ {
+ "name": "force-share",
+ "help": "always accept other writers (default: off)",
+ "type": "boolean"
+ },
+ {
+ "name": "discard",
+ "help": "discard operation (ignore/off, unmap/on)",
+ "type": "string"
+ },
+ {
+ "name": "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-36"
+}
+
+{
+ "execute": "query-migrate-capabilities",
+ "id": "libvirt-37"
+}
+
+{
+ "return": [
+ {
+ "state": false,
+ "capability": "xbzrle"
+ },
+ {
+ "state": false,
+ "capability": "rdma-pin-all"
+ },
+ {
+ "state": false,
+ "capability": "auto-converge"
+ },
+ {
+ "state": false,
+ "capability": "zero-blocks"
+ },
+ {
+ "state": false,
+ "capability": "compress"
+ },
+ {
+ "state": false,
+ "capability": "events"
+ },
+ {
+ "state": false,
+ "capability": "postcopy-ram"
+ },
+ {
+ "state": false,
+ "capability": "x-colo"
+ },
+ {
+ "state": false,
+ "capability": "release-ram"
+ },
+ {
+ "state": false,
+ "capability": "block"
+ },
+ {
+ "state": false,
+ "capability": "return-path"
+ },
+ {
+ "state": false,
+ "capability": "pause-before-switchover"
+ },
+ {
+ "state": false,
+ "capability": "multifd"
+ },
+ {
+ "state": false,
+ "capability": "dirty-bitmaps"
+ },
+ {
+ "state": false,
+ "capability": "postcopy-blocktime"
+ },
+ {
+ "state": false,
+ "capability": "late-block-activate"
+ },
+ {
+ "state": false,
+ "capability": "x-ignore-shared"
+ }
+ ],
+ "id": "libvirt-37"
+}
+
+{
+ "execute": "query-qmp-schema",
+ "id": "libvirt-38"
+}
+
+{
+ "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": "GUEST_PANICKED",
+ "meta-type": "event",
+ "arg-type": "6"
+ },
+ {
+ "name": "JOB_STATUS_CHANGE",
+ "meta-type": "event",
+ "arg-type": "7"
+ },
+ {
+ "name": "job-pause",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "8"
+ },
+ {
+ "name": "job-resume",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "9"
+ },
+ {
+ "name": "job-cancel",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "10"
+ },
+ {
+ "name": "job-complete",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "11"
+ },
+ {
+ "name": "job-dismiss",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "12"
+ },
+ {
+ "name": "job-finalize",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "13"
+ },
+ {
+ "name": "query-jobs",
+ "ret-type": "[14]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "block-latency-histogram-set",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "15"
+ },
+ {
+ "name": "query-block",
+ "ret-type": "[16]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-blockstats",
+ "ret-type": "[18]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-block-jobs",
+ "ret-type": "[19]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "block_passwd",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "20"
+ },
+ {
+ "name": "block_resize",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "21"
+ },
+ {
+ "name": "blockdev-snapshot-sync",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "22"
+ },
+ {
+ "name": "blockdev-snapshot",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "23"
+ },
+ {
+ "name": "change-backing-file",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "24"
+ },
+ {
+ "name": "block-commit",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "25"
+ },
+ {
+ "name": "drive-backup",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "26"
+ },
+ {
+ "name": "blockdev-backup",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "27"
+ },
+ {
+ "name": "query-named-block-nodes",
+ "ret-type": "[28]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "x-debug-query-block-graph",
+ "ret-type": "29",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "drive-mirror",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "30"
+ },
+ {
+ "name": "block-dirty-bitmap-add",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "31"
+ },
+ {
+ "name": "block-dirty-bitmap-remove",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "32"
+ },
+ {
+ "name": "block-dirty-bitmap-clear",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "32"
+ },
+ {
+ "name": "block-dirty-bitmap-enable",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "32"
+ },
+ {
+ "name": "block-dirty-bitmap-disable",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "32"
+ },
+ {
+ "name": "block-dirty-bitmap-merge",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "33"
+ },
+ {
+ "name": "x-debug-block-dirty-bitmap-sha256",
+ "ret-type": "34",
+ "meta-type": "command",
+ "arg-type": "32"
+ },
+ {
+ "name": "blockdev-mirror",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "35"
+ },
+ {
+ "name": "block_set_io_throttle",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "36"
+ },
+ {
+ "name": "block-stream",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "37"
+ },
+ {
+ "name": "block-job-set-speed",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "38"
+ },
+ {
+ "name": "block-job-cancel",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "39"
+ },
+ {
+ "name": "block-job-pause",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "40"
+ },
+ {
+ "name": "block-job-resume",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "41"
+ },
+ {
+ "name": "block-job-complete",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "42"
+ },
+ {
+ "name": "block-job-dismiss",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "43"
+ },
+ {
+ "name": "block-job-finalize",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "44"
+ },
+ {
+ "name": "blockdev-add",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "45"
+ },
+ {
+ "name": "x-blockdev-reopen",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "45"
+ },
+ {
+ "name": "blockdev-del",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "46"
+ },
+ {
+ "name": "blockdev-create",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "47"
+ },
+ {
+ "name": "blockdev-open-tray",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "48"
+ },
+ {
+ "name": "blockdev-close-tray",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "49"
+ },
+ {
+ "name": "blockdev-remove-medium",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "50"
+ },
+ {
+ "name": "blockdev-insert-medium",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "51"
+ },
+ {
+ "name": "blockdev-change-medium",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "52"
+ },
+ {
+ "name": "BLOCK_IMAGE_CORRUPTED",
+ "meta-type": "event",
+ "arg-type": "53"
+ },
+ {
+ "name": "BLOCK_IO_ERROR",
+ "meta-type": "event",
+ "arg-type": "54"
+ },
+ {
+ "name": "BLOCK_JOB_COMPLETED",
+ "meta-type": "event",
+ "arg-type": "55"
+ },
+ {
+ "name": "BLOCK_JOB_CANCELLED",
+ "meta-type": "event",
+ "arg-type": "56"
+ },
+ {
+ "name": "BLOCK_JOB_ERROR",
+ "meta-type": "event",
+ "arg-type": "57"
+ },
+ {
+ "name": "BLOCK_JOB_READY",
+ "meta-type": "event",
+ "arg-type": "58"
+ },
+ {
+ "name": "BLOCK_JOB_PENDING",
+ "meta-type": "event",
+ "arg-type": "59"
+ },
+ {
+ "name": "BLOCK_WRITE_THRESHOLD",
+ "meta-type": "event",
+ "arg-type": "60"
+ },
+ {
+ "name": "block-set-write-threshold",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "61"
+ },
+ {
+ "name": "x-blockdev-change",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "62"
+ },
+ {
+ "name": "x-blockdev-set-iothread",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "63"
+ },
+ {
+ "name": "query-pr-managers",
+ "ret-type": "[64]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "blockdev-snapshot-internal-sync",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "65"
+ },
+ {
+ "name": "blockdev-snapshot-delete-internal-sync",
+ "ret-type": "67",
+ "meta-type": "command",
+ "arg-type": "66"
+ },
+ {
+ "name": "eject",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "68"
+ },
+ {
+ "name": "nbd-server-start",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "69"
+ },
+ {
+ "name": "nbd-server-add",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "70"
+ },
+ {
+ "name": "nbd-server-remove",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "71"
+ },
+ {
+ "name": "nbd-server-stop",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "DEVICE_TRAY_MOVED",
+ "meta-type": "event",
+ "arg-type": "72"
+ },
+ {
+ "name": "PR_MANAGER_STATUS_CHANGED",
+ "meta-type": "event",
+ "arg-type": "73"
+ },
+ {
+ "name": "QUORUM_FAILURE",
+ "meta-type": "event",
+ "arg-type": "74"
+ },
+ {
+ "name": "QUORUM_REPORT_BAD",
+ "meta-type": "event",
+ "arg-type": "75"
+ },
+ {
+ "name": "query-chardev",
+ "ret-type": "[76]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-chardev-backends",
+ "ret-type": "[77]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "ringbuf-write",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "78"
+ },
+ {
+ "name": "ringbuf-read",
+ "ret-type": "str",
+ "meta-type": "command",
+ "arg-type": "79"
+ },
+ {
+ "name": "chardev-add",
+ "ret-type": "81",
+ "meta-type": "command",
+ "arg-type": "80"
+ },
+ {
+ "name": "chardev-change",
+ "ret-type": "81",
+ "meta-type": "command",
+ "arg-type": "82"
+ },
+ {
+ "name": "chardev-remove",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "83"
+ },
+ {
+ "name": "chardev-send-break",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "84"
+ },
+ {
+ "name": "VSERPORT_CHANGE",
+ "meta-type": "event",
+ "arg-type": "85"
+ },
+ {
+ "name": "dump-guest-memory",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "86"
+ },
+ {
+ "name": "query-dump",
+ "ret-type": "87",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "DUMP_COMPLETED",
+ "meta-type": "event",
+ "arg-type": "88"
+ },
+ {
+ "name": "query-dump-guest-memory-capability",
+ "ret-type": "89",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "set_link",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "90"
+ },
+ {
+ "name": "netdev_add",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "91"
+ },
+ {
+ "name": "netdev_del",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "92"
+ },
+ {
+ "name": "query-rx-filter",
+ "ret-type": "[94]",
+ "meta-type": "command",
+ "arg-type": "93"
+ },
+ {
+ "name": "NIC_RX_FILTER_CHANGED",
+ "meta-type": "event",
+ "arg-type": "95"
+ },
+ {
+ "name": "announce-self",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "96"
+ },
+ {
+ "name": "RDMA_GID_STATUS_CHANGED",
+ "meta-type": "event",
+ "arg-type": "97"
+ },
+ {
+ "name": "query-rocker",
+ "ret-type": "99",
+ "meta-type": "command",
+ "arg-type": "98"
+ },
+ {
+ "name": "query-rocker-ports",
+ "ret-type": "[101]",
+ "meta-type": "command",
+ "arg-type": "100"
+ },
+ {
+ "name": "query-rocker-of-dpa-flows",
+ "ret-type": "[103]",
+ "meta-type": "command",
+ "arg-type": "102"
+ },
+ {
+ "name": "query-rocker-of-dpa-groups",
+ "ret-type": "[105]",
+ "meta-type": "command",
+ "arg-type": "104"
+ },
+ {
+ "name": "query-tpm-models",
+ "ret-type": "[106]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-tpm-types",
+ "ret-type": "[107]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-tpm",
+ "ret-type": "[108]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "set_password",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "109"
+ },
+ {
+ "name": "expire_password",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "110"
+ },
+ {
+ "name": "screendump",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "111"
+ },
+ {
+ "name": "query-vnc",
+ "ret-type": "116",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-vnc-servers",
+ "ret-type": "[117]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "change-vnc-password",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "118"
+ },
+ {
+ "name": "VNC_CONNECTED",
+ "meta-type": "event",
+ "arg-type": "119"
+ },
+ {
+ "name": "VNC_INITIALIZED",
+ "meta-type": "event",
+ "arg-type": "120"
+ },
+ {
+ "name": "VNC_DISCONNECTED",
+ "meta-type": "event",
+ "arg-type": "121"
+ },
+ {
+ "name": "query-mice",
+ "ret-type": "[122]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "send-key",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "123"
+ },
+ {
+ "name": "input-send-event",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "124"
+ },
+ {
+ "name": "query-display-options",
+ "ret-type": "125",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-migrate",
+ "ret-type": "126",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "migrate-set-capabilities",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "127"
+ },
+ {
+ "name": "query-migrate-capabilities",
+ "ret-type": "[128]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "migrate-set-parameters",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "129"
+ },
+ {
+ "name": "query-migrate-parameters",
+ "ret-type": "130",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "client_migrate_info",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "131"
+ },
+ {
+ "name": "migrate-start-postcopy",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "MIGRATION",
+ "meta-type": "event",
+ "arg-type": "132"
+ },
+ {
+ "name": "MIGRATION_PASS",
+ "meta-type": "event",
+ "arg-type": "133"
+ },
+ {
+ "name": "COLO_EXIT",
+ "meta-type": "event",
+ "arg-type": "134"
+ },
+ {
+ "name": "x-colo-lost-heartbeat",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "migrate_cancel",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "migrate-continue",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "135"
+ },
+ {
+ "name": "migrate_set_downtime",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "136"
+ },
+ {
+ "name": "migrate_set_speed",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "137"
+ },
+ {
+ "name": "migrate-set-cache-size",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "138"
+ },
+ {
+ "name": "query-migrate-cache-size",
+ "ret-type": "int",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "migrate",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "139"
+ },
+ {
+ "name": "migrate-incoming",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "140"
+ },
+ {
+ "name": "xen-save-devices-state",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "141"
+ },
+ {
+ "name": "xen-set-replication",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "142"
+ },
+ {
+ "name": "query-xen-replication-status",
+ "ret-type": "143",
+ "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": "144",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "migrate-recover",
+ "ret-type": "0",
+ "allow-oob": true,
+ "meta-type": "command",
+ "arg-type": "145"
+ },
+ {
+ "name": "migrate-pause",
+ "ret-type": "0",
+ "allow-oob": true,
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "transaction",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "146"
+ },
+ {
+ "name": "trace-event-get-state",
+ "ret-type": "[148]",
+ "meta-type": "command",
+ "arg-type": "147"
+ },
+ {
+ "name": "trace-event-set-state",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "149"
+ },
+ {
+ "name": "query-qmp-schema",
+ "ret-type": "[150]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "qom-list",
+ "ret-type": "[152]",
+ "meta-type": "command",
+ "arg-type": "151"
+ },
+ {
+ "name": "qom-get",
+ "ret-type": "any",
+ "meta-type": "command",
+ "arg-type": "153"
+ },
+ {
+ "name": "qom-set",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "154"
+ },
+ {
+ "name": "qom-list-types",
+ "ret-type": "[156]",
+ "meta-type": "command",
+ "arg-type": "155"
+ },
+ {
+ "name": "qom-list-properties",
+ "ret-type": "[152]",
+ "meta-type": "command",
+ "arg-type": "157"
+ },
+ {
+ "name": "object-add",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "158"
+ },
+ {
+ "name": "object-del",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "159"
+ },
+ {
+ "name": "device-list-properties",
+ "ret-type": "[152]",
+ "meta-type": "command",
+ "arg-type": "160"
+ },
+ {
+ "name": "device_add",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "161"
+ },
+ {
+ "name": "device_del",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "162"
+ },
+ {
+ "name": "DEVICE_DELETED",
+ "meta-type": "event",
+ "arg-type": "163"
+ },
+ {
+ "name": "query-cpus",
+ "ret-type": "[164]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-cpus-fast",
+ "ret-type": "[165]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "cpu-add",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "166"
+ },
+ {
+ "name": "query-machines",
+ "ret-type": "[167]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-current-machine",
+ "ret-type": "168",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-memdev",
+ "ret-type": "[169]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-hotpluggable-cpus",
+ "ret-type": "[170]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "set-numa-node",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "171"
+ },
+ {
+ "name": "query-cpu-model-comparison",
+ "ret-type": "173",
+ "meta-type": "command",
+ "arg-type": "172"
+ },
+ {
+ "name": "query-cpu-model-baseline",
+ "ret-type": "175",
+ "meta-type": "command",
+ "arg-type": "174"
+ },
+ {
+ "name": "query-cpu-model-expansion",
+ "ret-type": "177",
+ "meta-type": "command",
+ "arg-type": "176"
+ },
+ {
+ "name": "query-cpu-definitions",
+ "ret-type": "[178]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "qmp_capabilities",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "179"
+ },
+ {
+ "name": "query-version",
+ "ret-type": "180",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-commands",
+ "ret-type": "[181]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "add_client",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "182"
+ },
+ {
+ "name": "query-name",
+ "ret-type": "183",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-kvm",
+ "ret-type": "184",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-uuid",
+ "ret-type": "185",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-events",
+ "ret-type": "[186]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-iothreads",
+ "ret-type": "[187]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-balloon",
+ "ret-type": "188",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "BALLOON_CHANGE",
+ "meta-type": "event",
+ "arg-type": "189"
+ },
+ {
+ "name": "query-pci",
+ "ret-type": "[190]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "quit",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "stop",
+ "ret-type": "0",
+ "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": "memsave",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "191"
+ },
+ {
+ "name": "pmemsave",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "192"
+ },
+ {
+ "name": "cont",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "x-exit-preconfig",
+ "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": "balloon",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "193"
+ },
+ {
+ "name": "human-monitor-command",
+ "ret-type": "str",
+ "meta-type": "command",
+ "arg-type": "194"
+ },
+ {
+ "name": "change",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "195"
+ },
+ {
+ "name": "xen-set-global-dirty-log",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "196"
+ },
+ {
+ "name": "getfd",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "197"
+ },
+ {
+ "name": "closefd",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "198"
+ },
+ {
+ "name": "query-memory-size-summary",
+ "ret-type": "199",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "add-fd",
+ "ret-type": "201",
+ "meta-type": "command",
+ "arg-type": "200"
+ },
+ {
+ "name": "remove-fd",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "202"
+ },
+ {
+ "name": "query-fdsets",
+ "ret-type": "[203]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-target",
+ "ret-type": "204",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-command-line-options",
+ "ret-type": "[206]",
+ "meta-type": "command",
+ "arg-type": "205"
+ },
+ {
+ "name": "query-memory-devices",
+ "ret-type": "[207]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "MEM_UNPLUG_ERROR",
+ "meta-type": "event",
+ "arg-type": "208"
+ },
+ {
+ "name": "query-acpi-ospm-status",
+ "ret-type": "[209]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "ACPI_DEVICE_OST",
+ "meta-type": "event",
+ "arg-type": "210"
+ },
+ {
+ "name": "xen-load-devices-state",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "211"
+ },
+ {
+ "name": "query-vm-generation-id",
+ "ret-type": "212",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "RTC_CHANGE",
+ "meta-type": "event",
+ "arg-type": "213"
+ },
+ {
+ "name": "dump-skeys",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "217"
+ },
+ {
+ "name": "0",
+ "members": [
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "1",
+ "members": [
+ {
+ "name": "running",
+ "type": "bool"
+ },
+ {
+ "name": "singlestep",
+ "type": "bool"
+ },
+ {
+ "name": "status",
+ "type": "219"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "2",
+ "members": [
+ {
+ "name": "guest",
+ "type": "bool"
+ },
+ {
+ "name": "reason",
+ "type": "220"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "3",
+ "members": [
+ {
+ "name": "guest",
+ "type": "bool"
+ },
+ {
+ "name": "reason",
+ "type": "220"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "4",
+ "members": [
+ {
+ "name": "action",
+ "type": "221"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "5",
+ "members": [
+ {
+ "name": "action",
+ "type": "221"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "6",
+ "members": [
+ {
+ "name": "action",
+ "type": "222"
+ },
+ {
+ "name": "info",
+ "default": null,
+ "type": "223"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "7",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "status",
+ "type": "224"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "8",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "9",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "10",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "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]",
+ "element-type": "14",
+ "meta-type": "array"
+ },
+ {
+ "name": "14",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "225"
+ },
+ {
+ "name": "status",
+ "type": "224"
+ },
+ {
+ "name": "current-progress",
+ "type": "int"
+ },
+ {
+ "name": "total-progress",
+ "type": "int"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "15",
+ "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-flush",
+ "default": null,
+ "type": "[int]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[16]",
+ "element-type": "16",
+ "meta-type": "array"
+ },
+ {
+ "name": "16",
+ "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": "28"
+ },
+ {
+ "name": "tray_open",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "io-status",
+ "default": null,
+ "type": "226"
+ },
+ {
+ "name": "dirty-bitmaps",
+ "default": null,
+ "type": "[227]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "17",
+ "members": [
+ {
+ "name": "query-nodes",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[18]",
+ "element-type": "18",
+ "meta-type": "array"
+ },
+ {
+ "name": "18",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "qdev",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "stats",
+ "type": "228"
+ },
+ {
+ "name": "parent",
+ "default": null,
+ "type": "18"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "18"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[19]",
+ "element-type": "19",
+ "meta-type": "array"
+ },
+ {
+ "name": "19",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "busy",
+ "type": "bool"
+ },
+ {
+ "name": "paused",
+ "type": "bool"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ },
+ {
+ "name": "io-status",
+ "type": "226"
+ },
+ {
+ "name": "ready",
+ "type": "bool"
+ },
+ {
+ "name": "status",
+ "type": "224"
+ },
+ {
+ "name": "auto-finalize",
+ "type": "bool"
+ },
+ {
+ "name": "auto-dismiss",
+ "type": "bool"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "20",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "21",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "22",
+ "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": "229"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "23",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "overlay",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "24",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "image-node-name",
+ "type": "str"
+ },
+ {
+ "name": "backing-file",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "25",
+ "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"
+ },
+ {
+ "name": "top-node",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "top",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "filter-node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "auto-finalize",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "auto-dismiss",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "26",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "230"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "229"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bitmap",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "compress",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "231"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "231"
+ },
+ {
+ "name": "auto-finalize",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "auto-dismiss",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "27",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "230"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bitmap",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "compress",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "231"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "231"
+ },
+ {
+ "name": "auto-finalize",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "auto-dismiss",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[28]",
+ "element-type": "28",
+ "meta-type": "array"
+ },
+ {
+ "name": "28",
+ "members": [
+ {
+ "name": "file",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ro",
+ "type": "bool"
+ },
+ {
+ "name": "drv",
+ "type": "str"
+ },
+ {
+ "name": "backing_file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing_file_depth",
+ "type": "int"
+ },
+ {
+ "name": "encrypted",
+ "type": "bool"
+ },
+ {
+ "name": "encryption_key_missing",
+ "type": "bool"
+ },
+ {
+ "name": "detect_zeroes",
+ "type": "232"
+ },
+ {
+ "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": "233"
+ },
+ {
+ "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": "234"
+ },
+ {
+ "name": "write_threshold",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "29",
+ "members": [
+ {
+ "name": "nodes",
+ "type": "[235]"
+ },
+ {
+ "name": "edges",
+ "type": "[236]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "30",
+ "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": "230"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "229"
+ },
+ {
+ "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": "231"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "231"
+ },
+ {
+ "name": "unmap",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "copy-mode",
+ "default": null,
+ "type": "237"
+ },
+ {
+ "name": "auto-finalize",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "auto-dismiss",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "31",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "granularity",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "persistent",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "autoload",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "disabled",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "32",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "33",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "bitmaps",
+ "type": "[238]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "34",
+ "members": [
+ {
+ "name": "sha256",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "35",
+ "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": "230"
+ },
+ {
+ "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": "231"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "231"
+ },
+ {
+ "name": "filter-node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "copy-mode",
+ "default": null,
+ "type": "237"
+ },
+ {
+ "name": "auto-finalize",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "auto-dismiss",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "36",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "bps",
+ "type": "int"
+ },
+ {
+ "name": "bps_rd",
+ "type": "int"
+ },
+ {
+ "name": "bps_wr",
+ "type": "int"
+ },
+ {
+ "name": "iops",
+ "type": "int"
+ },
+ {
+ "name": "iops_rd",
+ "type": "int"
+ },
+ {
+ "name": "iops_wr",
+ "type": "int"
+ },
+ {
+ "name": "bps_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "37",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "base",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "base-node",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "on-error",
+ "default": null,
+ "type": "231"
+ },
+ {
+ "name": "auto-finalize",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "auto-dismiss",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "38",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "39",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "40",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "41",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "42",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "43",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "44",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "45",
+ "tag": "driver",
+ "variants": [
+ {
+ "case": "blkdebug",
+ "type": "242"
+ },
+ {
+ "case": "blklogwrites",
+ "type": "243"
+ },
+ {
+ "case": "blkverify",
+ "type": "244"
+ },
+ {
+ "case": "bochs",
+ "type": "245"
+ },
+ {
+ "case": "cloop",
+ "type": "245"
+ },
+ {
+ "case": "copy-on-read",
+ "type": "245"
+ },
+ {
+ "case": "dmg",
+ "type": "245"
+ },
+ {
+ "case": "file",
+ "type": "246"
+ },
+ {
+ "case": "ftp",
+ "type": "247"
+ },
+ {
+ "case": "ftps",
+ "type": "248"
+ },
+ {
+ "case": "gluster",
+ "type": "249"
+ },
+ {
+ "case": "host_cdrom",
+ "type": "246"
+ },
+ {
+ "case": "host_device",
+ "type": "246"
+ },
+ {
+ "case": "http",
+ "type": "250"
+ },
+ {
+ "case": "https",
+ "type": "251"
+ },
+ {
+ "case": "iscsi",
+ "type": "252"
+ },
+ {
+ "case": "luks",
+ "type": "253"
+ },
+ {
+ "case": "nbd",
+ "type": "254"
+ },
+ {
+ "case": "nfs",
+ "type": "255"
+ },
+ {
+ "case": "null-aio",
+ "type": "256"
+ },
+ {
+ "case": "null-co",
+ "type": "256"
+ },
+ {
+ "case": "nvme",
+ "type": "257"
+ },
+ {
+ "case": "parallels",
+ "type": "245"
+ },
+ {
+ "case": "qcow2",
+ "type": "258"
+ },
+ {
+ "case": "qcow",
+ "type": "259"
+ },
+ {
+ "case": "qed",
+ "type": "260"
+ },
+ {
+ "case": "quorum",
+ "type": "261"
+ },
+ {
+ "case": "raw",
+ "type": "262"
+ },
+ {
+ "case": "rbd",
+ "type": "263"
+ },
+ {
+ "case": "replication",
+ "type": "264"
+ },
+ {
+ "case": "sheepdog",
+ "type": "265"
+ },
+ {
+ "case": "ssh",
+ "type": "266"
+ },
+ {
+ "case": "throttle",
+ "type": "267"
+ },
+ {
+ "case": "vdi",
+ "type": "245"
+ },
+ {
+ "case": "vhdx",
+ "type": "245"
+ },
+ {
+ "case": "vmdk",
+ "type": "260"
+ },
+ {
+ "case": "vpc",
+ "type": "245"
+ },
+ {
+ "case": "vvfat",
+ "type": "268"
+ },
+ {
+ "case": "vxhs",
+ "type": "269"
+ }
+ ],
+ "members": [
+ {
+ "name": "driver",
+ "type": "239"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "discard",
+ "default": null,
+ "type": "240"
+ },
+ {
+ "name": "cache",
+ "default": null,
+ "type": "241"
+ },
+ {
+ "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": "232"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "46",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "47",
+ "members": [
+ {
+ "name": "job-id",
+ "type": "str"
+ },
+ {
+ "name": "options",
+ "type": "270"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "48",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "49",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "50",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "51",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "52",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "read-only-mode",
+ "default": null,
+ "type": "271"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "53",
+ "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": "54",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "operation",
+ "type": "272"
+ },
+ {
+ "name": "action",
+ "type": "273"
+ },
+ {
+ "name": "nospace",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "reason",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "55",
+ "members": [
+ {
+ "name": "type",
+ "type": "225"
+ },
+ {
+ "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": "56",
+ "members": [
+ {
+ "name": "type",
+ "type": "225"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "57",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "operation",
+ "type": "272"
+ },
+ {
+ "name": "action",
+ "type": "273"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "58",
+ "members": [
+ {
+ "name": "type",
+ "type": "225"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "59",
+ "members": [
+ {
+ "name": "type",
+ "type": "225"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "60",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "amount-exceeded",
+ "type": "int"
+ },
+ {
+ "name": "write-threshold",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "61",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "write-threshold",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "62",
+ "members": [
+ {
+ "name": "parent",
+ "type": "str"
+ },
+ {
+ "name": "child",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "63",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "iothread",
+ "type": "274"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[64]",
+ "element-type": "64",
+ "meta-type": "array"
+ },
+ {
+ "name": "64",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "connected",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "65",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "66",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "67",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "vm-state-size",
+ "type": "int"
+ },
+ {
+ "name": "date-sec",
+ "type": "int"
+ },
+ {
+ "name": "date-nsec",
+ "type": "int"
+ },
+ {
+ "name": "vm-clock-sec",
+ "type": "int"
+ },
+ {
+ "name": "vm-clock-nsec",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "68",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "69",
+ "members": [
+ {
+ "name": "addr",
+ "type": "275"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-authz",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "70",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "writable",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "bitmap",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "71",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "276"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "72",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "tray-open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "73",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "connected",
+ "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": "277"
+ },
+ {
+ "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]",
+ "element-type": "76",
+ "meta-type": "array"
+ },
+ {
+ "name": "76",
+ "members": [
+ {
+ "name": "label",
+ "type": "str"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "frontend-open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[77]",
+ "element-type": "77",
+ "meta-type": "array"
+ },
+ {
+ "name": "77",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "78",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "data",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "278"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "79",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "278"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "str",
+ "json-type": "string",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "80",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "backend",
+ "type": "279"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "81",
+ "members": [
+ {
+ "name": "pty",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "82",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "backend",
+ "type": "279"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "83",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "84",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "85",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "86",
+ "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": "280"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "87",
+ "members": [
+ {
+ "name": "status",
+ "type": "281"
+ },
+ {
+ "name": "completed",
+ "type": "int"
+ },
+ {
+ "name": "total",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "88",
+ "members": [
+ {
+ "name": "result",
+ "type": "87"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "89",
+ "members": [
+ {
+ "name": "formats",
+ "type": "[280]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "90",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "up",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "91",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "92",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "93",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[94]",
+ "element-type": "94",
+ "meta-type": "array"
+ },
+ {
+ "name": "94",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "promiscuous",
+ "type": "bool"
+ },
+ {
+ "name": "multicast",
+ "type": "282"
+ },
+ {
+ "name": "unicast",
+ "type": "282"
+ },
+ {
+ "name": "vlan",
+ "type": "282"
+ },
+ {
+ "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": "95",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "96",
+ "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": "97",
+ "members": [
+ {
+ "name": "netdev",
+ "type": "str"
+ },
+ {
+ "name": "gid-status",
+ "type": "bool"
+ },
+ {
+ "name": "subnet-prefix",
+ "type": "int"
+ },
+ {
+ "name": "interface-id",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "98",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "99",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "int"
+ },
+ {
+ "name": "ports",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "100",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[101]",
+ "element-type": "101",
+ "meta-type": "array"
+ },
+ {
+ "name": "101",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "link-up",
+ "type": "bool"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ },
+ {
+ "name": "duplex",
+ "type": "283"
+ },
+ {
+ "name": "autoneg",
+ "type": "284"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "102",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "tbl-id",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[103]",
+ "element-type": "103",
+ "meta-type": "array"
+ },
+ {
+ "name": "103",
+ "members": [
+ {
+ "name": "cookie",
+ "type": "int"
+ },
+ {
+ "name": "hits",
+ "type": "int"
+ },
+ {
+ "name": "key",
+ "type": "285"
+ },
+ {
+ "name": "mask",
+ "type": "286"
+ },
+ {
+ "name": "action",
+ "type": "287"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "104",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[105]",
+ "element-type": "105",
+ "meta-type": "array"
+ },
+ {
+ "name": "105",
+ "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": "[106]",
+ "element-type": "106",
+ "meta-type": "array"
+ },
+ {
+ "name": "106",
+ "meta-type": "enum",
+ "values": [
+ "tpm-tis",
+ "tpm-crb"
+ ]
+ },
+ {
+ "name": "[107]",
+ "element-type": "107",
+ "meta-type": "array"
+ },
+ {
+ "name": "107",
+ "meta-type": "enum",
+ "values": [
+ "passthrough",
+ "emulator"
+ ]
+ },
+ {
+ "name": "[108]",
+ "element-type": "108",
+ "meta-type": "array"
+ },
+ {
+ "name": "108",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "model",
+ "type": "106"
+ },
+ {
+ "name": "options",
+ "type": "288"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "109",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "password",
+ "type": "str"
+ },
+ {
+ "name": "connected",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "110",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "time",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "111",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "head",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "116",
+ "members": [
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "host",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "default": null,
+ "type": "293"
+ },
+ {
+ "name": "service",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "clients",
+ "default": null,
+ "type": "[294]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[117]",
+ "element-type": "117",
+ "meta-type": "array"
+ },
+ {
+ "name": "117",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "type": "[295]"
+ },
+ {
+ "name": "clients",
+ "type": "[294]"
+ },
+ {
+ "name": "auth",
+ "type": "296"
+ },
+ {
+ "name": "vencrypt",
+ "default": null,
+ "type": "297"
+ },
+ {
+ "name": "display",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "118",
+ "members": [
+ {
+ "name": "password",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "119",
+ "members": [
+ {
+ "name": "server",
+ "type": "298"
+ },
+ {
+ "name": "client",
+ "type": "299"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "120",
+ "members": [
+ {
+ "name": "server",
+ "type": "298"
+ },
+ {
+ "name": "client",
+ "type": "294"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "121",
+ "members": [
+ {
+ "name": "server",
+ "type": "298"
+ },
+ {
+ "name": "client",
+ "type": "294"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[122]",
+ "element-type": "122",
+ "meta-type": "array"
+ },
+ {
+ "name": "122",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "index",
+ "type": "int"
+ },
+ {
+ "name": "current",
+ "type": "bool"
+ },
+ {
+ "name": "absolute",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "123",
+ "members": [
+ {
+ "name": "keys",
+ "type": "[300]"
+ },
+ {
+ "name": "hold-time",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "124",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "head",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "events",
+ "type": "[301]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "125",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "gtk",
+ "type": "304"
+ },
+ {
+ "case": "curses",
+ "type": "305"
+ },
+ {
+ "case": "egl-headless",
+ "type": "306"
+ },
+ {
+ "case": "default",
+ "type": "0"
+ },
+ {
+ "case": "none",
+ "type": "0"
+ },
+ {
+ "case": "sdl",
+ "type": "0"
+ },
+ {
+ "case": "cocoa",
+ "type": "0"
+ },
+ {
+ "case": "spice-app",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "302"
+ },
+ {
+ "name": "full-screen",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "window-close",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "gl",
+ "default": null,
+ "type": "303"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "126",
+ "members": [
+ {
+ "name": "status",
+ "default": null,
+ "type": "307"
+ },
+ {
+ "name": "ram",
+ "default": null,
+ "type": "308"
+ },
+ {
+ "name": "disk",
+ "default": null,
+ "type": "308"
+ },
+ {
+ "name": "xbzrle-cache",
+ "default": null,
+ "type": "309"
+ },
+ {
+ "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": "postcopy-blocktime",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "postcopy-vcpu-blocktime",
+ "default": null,
+ "type": "[int]"
+ },
+ {
+ "name": "compression",
+ "default": null,
+ "type": "310"
+ },
+ {
+ "name": "socket-address",
+ "default": null,
+ "type": "[311]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "127",
+ "members": [
+ {
+ "name": "capabilities",
+ "type": "[128]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[128]",
+ "element-type": "128",
+ "meta-type": "array"
+ },
+ {
+ "name": "128",
+ "members": [
+ {
+ "name": "capability",
+ "type": "312"
+ },
+ {
+ "name": "state",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "129",
+ "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": "compress-level",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compress-wait-thread",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "decompress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-initial",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-increment",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "274"
+ },
+ {
+ "name": "tls-hostname",
+ "default": null,
+ "type": "274"
+ },
+ {
+ "name": "tls-authz",
+ "default": null,
+ "type": "274"
+ },
+ {
+ "name": "max-bandwidth",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "downtime-limit",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "x-checkpoint-delay",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "block-incremental",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "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"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "130",
+ "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": "compress-level",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compress-wait-thread",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "decompress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-initial",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-increment",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-hostname",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-authz",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "max-bandwidth",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "downtime-limit",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "x-checkpoint-delay",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "block-incremental",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "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"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "131",
+ "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": "132",
+ "members": [
+ {
+ "name": "status",
+ "type": "307"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "133",
+ "members": [
+ {
+ "name": "pass",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "134",
+ "members": [
+ {
+ "name": "mode",
+ "type": "313"
+ },
+ {
+ "name": "reason",
+ "type": "314"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "135",
+ "members": [
+ {
+ "name": "state",
+ "type": "307"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "136",
+ "members": [
+ {
+ "name": "value",
+ "type": "number"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "137",
+ "members": [
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "138",
+ "members": [
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "int",
+ "json-type": "int",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "139",
+ "members": [
+ {
+ "name": "uri",
+ "type": "str"
+ },
+ {
+ "name": "blk",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "inc",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "detach",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "resume",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "140",
+ "members": [
+ {
+ "name": "uri",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "141",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "live",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "142",
+ "members": [
+ {
+ "name": "enable",
+ "type": "bool"
+ },
+ {
+ "name": "primary",
+ "type": "bool"
+ },
+ {
+ "name": "failover",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "143",
+ "members": [
+ {
+ "name": "error",
+ "type": "bool"
+ },
+ {
+ "name": "desc",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "144",
+ "members": [
+ {
+ "name": "mode",
+ "type": "313"
+ },
+ {
+ "name": "last-mode",
+ "type": "313"
+ },
+ {
+ "name": "reason",
+ "type": "314"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "145",
+ "members": [
+ {
+ "name": "uri",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "146",
+ "members": [
+ {
+ "name": "actions",
+ "type": "[315]"
+ },
+ {
+ "name": "properties",
+ "default": null,
+ "type": "316"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "147",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "vcpu",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[148]",
+ "element-type": "148",
+ "meta-type": "array"
+ },
+ {
+ "name": "148",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "state",
+ "type": "317"
+ },
+ {
+ "name": "vcpu",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "149",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "enable",
+ "type": "bool"
+ },
+ {
+ "name": "ignore-unavailable",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "vcpu",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[150]",
+ "element-type": "150",
+ "meta-type": "array"
+ },
+ {
+ "name": "150",
+ "tag": "meta-type",
+ "variants": [
+ {
+ "case": "builtin",
+ "type": "319"
+ },
+ {
+ "case": "enum",
+ "type": "320"
+ },
+ {
+ "case": "array",
+ "type": "321"
+ },
+ {
+ "case": "object",
+ "type": "322"
+ },
+ {
+ "case": "alternate",
+ "type": "323"
+ },
+ {
+ "case": "command",
+ "type": "324"
+ },
+ {
+ "case": "event",
+ "type": "325"
+ }
+ ],
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "meta-type",
+ "type": "318"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "151",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[152]",
+ "element-type": "152",
+ "meta-type": "array"
+ },
+ {
+ "name": "152",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "description",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "153",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "property",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "any",
+ "json-type": "value",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "154",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "property",
+ "type": "str"
+ },
+ {
+ "name": "value",
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "155",
+ "members": [
+ {
+ "name": "implements",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "abstract",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[156]",
+ "element-type": "156",
+ "meta-type": "array"
+ },
+ {
+ "name": "156",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "abstract",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "parent",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "157",
+ "members": [
+ {
+ "name": "typename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "158",
+ "members": [
+ {
+ "name": "qom-type",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "props",
+ "default": null,
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "159",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "160",
+ "members": [
+ {
+ "name": "typename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "161",
+ "members": [
+ {
+ "name": "driver",
+ "type": "str"
+ },
+ {
+ "name": "bus",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "162",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "163",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[164]",
+ "element-type": "164",
+ "meta-type": "array"
+ },
+ {
+ "name": "164",
+ "tag": "arch",
+ "variants": [
+ {
+ "case": "x86",
+ "type": "328"
+ },
+ {
+ "case": "sparc",
+ "type": "329"
+ },
+ {
+ "case": "ppc",
+ "type": "330"
+ },
+ {
+ "case": "mips",
+ "type": "331"
+ },
+ {
+ "case": "tricore",
+ "type": "332"
+ },
+ {
+ "case": "s390",
+ "type": "333"
+ },
+ {
+ "case": "riscv",
+ "type": "334"
+ },
+ {
+ "case": "other",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "CPU",
+ "type": "int"
+ },
+ {
+ "name": "current",
+ "type": "bool"
+ },
+ {
+ "name": "halted",
+ "type": "bool"
+ },
+ {
+ "name": "qom_path",
+ "type": "str"
+ },
+ {
+ "name": "thread_id",
+ "type": "int"
+ },
+ {
+ "name": "props",
+ "default": null,
+ "type": "326"
+ },
+ {
+ "name": "arch",
+ "type": "327"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[165]",
+ "element-type": "165",
+ "meta-type": "array"
+ },
+ {
+ "name": "165",
+ "tag": "target",
+ "variants": [
+ {
+ "case": "s390x",
+ "type": "333"
+ },
+ {
+ "case": "aarch64",
+ "type": "0"
+ },
+ {
+ "case": "alpha",
+ "type": "0"
+ },
+ {
+ "case": "arm",
+ "type": "0"
+ },
+ {
+ "case": "cris",
+ "type": "0"
+ },
+ {
+ "case": "hppa",
+ "type": "0"
+ },
+ {
+ "case": "i386",
+ "type": "0"
+ },
+ {
+ "case": "lm32",
+ "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": "moxie",
+ "type": "0"
+ },
+ {
+ "case": "nios2",
+ "type": "0"
+ },
+ {
+ "case": "or1k",
+ "type": "0"
+ },
+ {
+ "case": "ppc",
+ "type": "0"
+ },
+ {
+ "case": "ppc64",
+ "type": "0"
+ },
+ {
+ "case": "riscv32",
+ "type": "0"
+ },
+ {
+ "case": "riscv64",
+ "type": "0"
+ },
+ {
+ "case": "sh4",
+ "type": "0"
+ },
+ {
+ "case": "sh4eb",
+ "type": "0"
+ },
+ {
+ "case": "sparc",
+ "type": "0"
+ },
+ {
+ "case": "sparc64",
+ "type": "0"
+ },
+ {
+ "case": "tricore",
+ "type": "0"
+ },
+ {
+ "case": "unicore32",
+ "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": "326"
+ },
+ {
+ "name": "arch",
+ "type": "327"
+ },
+ {
+ "name": "target",
+ "type": "335"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "166",
+ "members": [
+ {
+ "name": "id",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[167]",
+ "element-type": "167",
+ "meta-type": "array"
+ },
+ {
+ "name": "167",
+ "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"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "168",
+ "members": [
+ {
+ "name": "wakeup-suspend-support",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[169]",
+ "element-type": "169",
+ "meta-type": "array"
+ },
+ {
+ "name": "169",
+ "members": [
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "merge",
+ "type": "bool"
+ },
+ {
+ "name": "dump",
+ "type": "bool"
+ },
+ {
+ "name": "prealloc",
+ "type": "bool"
+ },
+ {
+ "name": "host-nodes",
+ "type": "[int]"
+ },
+ {
+ "name": "policy",
+ "type": "336"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[170]",
+ "element-type": "170",
+ "meta-type": "array"
+ },
+ {
+ "name": "170",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "vcpus-count",
+ "type": "int"
+ },
+ {
+ "name": "props",
+ "type": "326"
+ },
+ {
+ "name": "qom-path",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "171",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "node",
+ "type": "338"
+ },
+ {
+ "case": "dist",
+ "type": "339"
+ },
+ {
+ "case": "cpu",
+ "type": "340"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "337"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "172",
+ "members": [
+ {
+ "name": "modela",
+ "type": "341"
+ },
+ {
+ "name": "modelb",
+ "type": "341"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "173",
+ "members": [
+ {
+ "name": "result",
+ "type": "342"
+ },
+ {
+ "name": "responsible-properties",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "174",
+ "members": [
+ {
+ "name": "modela",
+ "type": "341"
+ },
+ {
+ "name": "modelb",
+ "type": "341"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "175",
+ "members": [
+ {
+ "name": "model",
+ "type": "341"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "176",
+ "members": [
+ {
+ "name": "type",
+ "type": "343"
+ },
+ {
+ "name": "model",
+ "type": "341"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "177",
+ "members": [
+ {
+ "name": "model",
+ "type": "341"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[178]",
+ "element-type": "178",
+ "meta-type": "array"
+ },
+ {
+ "name": "178",
+ "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"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "179",
+ "members": [
+ {
+ "name": "enable",
+ "default": null,
+ "type": "[344]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "180",
+ "members": [
+ {
+ "name": "qemu",
+ "type": "345"
+ },
+ {
+ "name": "package",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[181]",
+ "element-type": "181",
+ "meta-type": "array"
+ },
+ {
+ "name": "181",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "182",
+ "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": "183",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "184",
+ "members": [
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "present",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "185",
+ "members": [
+ {
+ "name": "UUID",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[186]",
+ "element-type": "186",
+ "meta-type": "array"
+ },
+ {
+ "name": "186",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[187]",
+ "element-type": "187",
+ "meta-type": "array"
+ },
+ {
+ "name": "187",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "thread-id",
+ "type": "int"
+ },
+ {
+ "name": "poll-max-ns",
+ "type": "int"
+ },
+ {
+ "name": "poll-grow",
+ "type": "int"
+ },
+ {
+ "name": "poll-shrink",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "188",
+ "members": [
+ {
+ "name": "actual",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "189",
+ "members": [
+ {
+ "name": "actual",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[190]",
+ "element-type": "190",
+ "meta-type": "array"
+ },
+ {
+ "name": "190",
+ "members": [
+ {
+ "name": "bus",
+ "type": "int"
+ },
+ {
+ "name": "devices",
+ "type": "[346]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "191",
+ "members": [
+ {
+ "name": "val",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "cpu-index",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "192",
+ "members": [
+ {
+ "name": "val",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "193",
+ "members": [
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "194",
+ "members": [
+ {
+ "name": "command-line",
+ "type": "str"
+ },
+ {
+ "name": "cpu-index",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "195",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "arg",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "196",
+ "members": [
+ {
+ "name": "enable",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "197",
+ "members": [
+ {
+ "name": "fdname",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "198",
+ "members": [
+ {
+ "name": "fdname",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "199",
+ "members": [
+ {
+ "name": "base-memory",
+ "type": "int"
+ },
+ {
+ "name": "plugged-memory",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "200",
+ "members": [
+ {
+ "name": "fdset-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "opaque",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "201",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fd",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "202",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fd",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[203]",
+ "element-type": "203",
+ "meta-type": "array"
+ },
+ {
+ "name": "203",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fds",
+ "type": "[347]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "204",
+ "members": [
+ {
+ "name": "arch",
+ "type": "335"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "205",
+ "members": [
+ {
+ "name": "option",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[206]",
+ "element-type": "206",
+ "meta-type": "array"
+ },
+ {
+ "name": "206",
+ "members": [
+ {
+ "name": "option",
+ "type": "str"
+ },
+ {
+ "name": "parameters",
+ "type": "[348]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[207]",
+ "element-type": "207",
+ "meta-type": "array"
+ },
+ {
+ "name": "207",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "dimm",
+ "type": "350"
+ },
+ {
+ "case": "nvdimm",
+ "type": "350"
+ },
+ {
+ "case": "virtio-pmem",
+ "type": "351"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "349"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "208",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "msg",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[209]",
+ "element-type": "209",
+ "meta-type": "array"
+ },
+ {
+ "name": "209",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "slot",
+ "type": "str"
+ },
+ {
+ "name": "slot-type",
+ "type": "352"
+ },
+ {
+ "name": "source",
+ "type": "int"
+ },
+ {
+ "name": "status",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "210",
+ "members": [
+ {
+ "name": "info",
+ "type": "209"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "211",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "212",
+ "members": [
+ {
+ "name": "guid",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "213",
+ "members": [
+ {
+ "name": "offset",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "217",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "bool",
+ "json-type": "boolean",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "219",
+ "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",
+ "preconfig"
+ ]
+ },
+ {
+ "name": "220",
+ "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"
+ ]
+ },
+ {
+ "name": "221",
+ "meta-type": "enum",
+ "values": [
+ "reset",
+ "shutdown",
+ "poweroff",
+ "pause",
+ "debug",
+ "none",
+ "inject-nmi"
+ ]
+ },
+ {
+ "name": "222",
+ "meta-type": "enum",
+ "values": [
+ "pause",
+ "poweroff"
+ ]
+ },
+ {
+ "name": "223",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "hyper-v",
+ "type": "355"
+ },
+ {
+ "case": "s390",
+ "type": "356"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "354"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "224",
+ "meta-type": "enum",
+ "values": [
+ "undefined",
+ "created",
+ "running",
+ "paused",
+ "ready",
+ "standby",
+ "waiting",
+ "pending",
+ "aborting",
+ "concluded",
+ "null"
+ ]
+ },
+ {
+ "name": "225",
+ "meta-type": "enum",
+ "values": [
+ "commit",
+ "stream",
+ "mirror",
+ "backup",
+ "create"
+ ]
+ },
+ {
+ "name": "[int]",
+ "element-type": "int",
+ "meta-type": "array"
+ },
+ {
+ "name": "226",
+ "meta-type": "enum",
+ "values": [
+ "ok",
+ "failed",
+ "nospace"
+ ]
+ },
+ {
+ "name": "[227]",
+ "element-type": "227",
+ "meta-type": "array"
+ },
+ {
+ "name": "227",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "count",
+ "type": "int"
+ },
+ {
+ "name": "granularity",
+ "type": "int"
+ },
+ {
+ "name": "recording",
+ "type": "bool"
+ },
+ {
+ "name": "busy",
+ "type": "bool"
+ },
+ {
+ "name": "status",
+ "type": "357"
+ },
+ {
+ "name": "persistent",
+ "type": "bool"
+ },
+ {
+ "name": "inconsistent",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "228",
+ "members": [
+ {
+ "name": "rd_bytes",
+ "type": "int"
+ },
+ {
+ "name": "wr_bytes",
+ "type": "int"
+ },
+ {
+ "name": "rd_operations",
+ "type": "int"
+ },
+ {
+ "name": "wr_operations",
+ "type": "int"
+ },
+ {
+ "name": "flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "flush_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "wr_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "rd_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "wr_highest_offset",
+ "type": "int"
+ },
+ {
+ "name": "rd_merged",
+ "type": "int"
+ },
+ {
+ "name": "wr_merged",
+ "type": "int"
+ },
+ {
+ "name": "idle_time_ns",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "failed_rd_operations",
+ "type": "int"
+ },
+ {
+ "name": "failed_wr_operations",
+ "type": "int"
+ },
+ {
+ "name": "failed_flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_rd_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_wr_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "account_invalid",
+ "type": "bool"
+ },
+ {
+ "name": "account_failed",
+ "type": "bool"
+ },
+ {
+ "name": "timed_stats",
+ "type": "[358]"
+ },
+ {
+ "name": "rd_latency_histogram",
+ "default": null,
+ "type": "359"
+ },
+ {
+ "name": "wr_latency_histogram",
+ "default": null,
+ "type": "359"
+ },
+ {
+ "name": "flush_latency_histogram",
+ "default": null,
+ "type": "359"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "229",
+ "meta-type": "enum",
+ "values": [
+ "existing",
+ "absolute-paths"
+ ]
+ },
+ {
+ "name": "230",
+ "meta-type": "enum",
+ "values": [
+ "top",
+ "full",
+ "none",
+ "incremental"
+ ]
+ },
+ {
+ "name": "231",
+ "meta-type": "enum",
+ "values": [
+ "report",
+ "ignore",
+ "enospc",
+ "stop",
+ "auto"
+ ]
+ },
+ {
+ "name": "232",
+ "meta-type": "enum",
+ "values": [
+ "off",
+ "on",
+ "unmap"
+ ]
+ },
+ {
+ "name": "233",
+ "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": "[67]"
+ },
+ {
+ "name": "backing-image",
+ "default": null,
+ "type": "233"
+ },
+ {
+ "name": "format-specific",
+ "default": null,
+ "type": "360"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "234",
+ "members": [
+ {
+ "name": "writeback",
+ "type": "bool"
+ },
+ {
+ "name": "direct",
+ "type": "bool"
+ },
+ {
+ "name": "no-flush",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[235]",
+ "element-type": "235",
+ "meta-type": "array"
+ },
+ {
+ "name": "235",
+ "members": [
+ {
+ "name": "id",
+ "type": "int"
+ },
+ {
+ "name": "type",
+ "type": "361"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[236]",
+ "element-type": "236",
+ "meta-type": "array"
+ },
+ {
+ "name": "236",
+ "members": [
+ {
+ "name": "parent",
+ "type": "int"
+ },
+ {
+ "name": "child",
+ "type": "int"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "perm",
+ "type": "[362]"
+ },
+ {
+ "name": "shared-perm",
+ "type": "[362]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "237",
+ "meta-type": "enum",
+ "values": [
+ "background",
+ "write-blocking"
+ ]
+ },
+ {
+ "name": "[238]",
+ "element-type": "238",
+ "meta-type": "array"
+ },
+ {
+ "name": "238",
+ "members": [
+ {
+ "type": "str"
+ },
+ {
+ "type": "32"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "239",
+ "meta-type": "enum",
+ "values": [
+ "blkdebug",
+ "blklogwrites",
+ "blkverify",
+ "bochs",
+ "cloop",
+ "copy-on-read",
+ "dmg",
+ "file",
+ "ftp",
+ "ftps",
+ "gluster",
+ "host_cdrom",
+ "host_device",
+ "http",
+ "https",
+ "iscsi",
+ "luks",
+ "nbd",
+ "nfs",
+ "null-aio",
+ "null-co",
+ "nvme",
+ "parallels",
+ "qcow",
+ "qcow2",
+ "qed",
+ "quorum",
+ "raw",
+ "rbd",
+ "replication",
+ "sheepdog",
+ "ssh",
+ "throttle",
+ "vdi",
+ "vhdx",
+ "vmdk",
+ "vpc",
+ "vvfat",
+ "vxhs"
+ ]
+ },
+ {
+ "name": "240",
+ "meta-type": "enum",
+ "values": [
+ "ignore",
+ "unmap"
+ ]
+ },
+ {
+ "name": "241",
+ "members": [
+ {
+ "name": "direct",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "no-flush",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "242",
+ "members": [
+ {
+ "name": "image",
+ "type": "363"
+ },
+ {
+ "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": "[364]"
+ },
+ {
+ "name": "set-state",
+ "default": null,
+ "type": "[365]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "243",
+ "members": [
+ {
+ "name": "file",
+ "type": "363"
+ },
+ {
+ "name": "log",
+ "type": "363"
+ },
+ {
+ "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": "244",
+ "members": [
+ {
+ "name": "test",
+ "type": "363"
+ },
+ {
+ "name": "raw",
+ "type": "363"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "245",
+ "members": [
+ {
+ "name": "file",
+ "type": "363"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "246",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "pr-manager",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "locking",
+ "default": null,
+ "type": "366"
+ },
+ {
+ "name": "aio",
+ "default": null,
+ "type": "367"
+ },
+ {
+ "name": "drop-cache",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "x-check-cache-dropped",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object",
+ "features": [
+ "dynamic-auto-read-only"
+ ]
+ },
+ {
+ "name": "247",
+ "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": "248",
+ "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": "249",
+ "members": [
+ {
+ "name": "volume",
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "type": "[311]"
+ },
+ {
+ "name": "debug",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "250",
+ "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": "251",
+ "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": "252",
+ "members": [
+ {
+ "name": "transport",
+ "type": "368"
+ },
+ {
+ "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": "369"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "253",
+ "members": [
+ {
+ "name": "file",
+ "type": "363"
+ },
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "254",
+ "members": [
+ {
+ "name": "server",
+ "type": "311"
+ },
+ {
+ "name": "export",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "x-dirty-bitmap",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "255",
+ "members": [
+ {
+ "name": "server",
+ "type": "370"
+ },
+ {
+ "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": "256",
+ "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": "257",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "namespace",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "258",
+ "members": [
+ {
+ "name": "file",
+ "type": "363"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "371"
+ },
+ {
+ "name": "lazy-refcounts",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "pass-discard-request",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "pass-discard-snapshot",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "pass-discard-other",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "overlap-check",
+ "default": null,
+ "type": "372"
+ },
+ {
+ "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": "373"
+ },
+ {
+ "name": "data-file",
+ "default": null,
+ "type": "363"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "259",
+ "members": [
+ {
+ "name": "file",
+ "type": "363"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "371"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "374"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "260",
+ "members": [
+ {
+ "name": "file",
+ "type": "363"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "371"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "261",
+ "members": [
+ {
+ "name": "blkverify",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "children",
+ "type": "[363]"
+ },
+ {
+ "name": "vote-threshold",
+ "type": "int"
+ },
+ {
+ "name": "rewrite-corrupted",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "read-pattern",
+ "default": null,
+ "type": "375"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "262",
+ "members": [
+ {
+ "name": "file",
+ "type": "363"
+ },
+ {
+ "name": "offset",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "263",
+ "members": [
+ {
+ "name": "pool",
+ "type": "str"
+ },
+ {
+ "name": "image",
+ "type": "str"
+ },
+ {
+ "name": "conf",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "snapshot",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "auth-client-required",
+ "default": null,
+ "type": "[376]"
+ },
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "default": null,
+ "type": "[377]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "264",
+ "members": [
+ {
+ "name": "file",
+ "type": "363"
+ },
+ {
+ "name": "mode",
+ "type": "378"
+ },
+ {
+ "name": "top-id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "265",
+ "members": [
+ {
+ "name": "server",
+ "type": "311"
+ },
+ {
+ "name": "vdi",
+ "type": "str"
+ },
+ {
+ "name": "snap-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tag",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "266",
+ "members": [
+ {
+ "name": "server",
+ "type": "379"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "host-key-check",
+ "default": null,
+ "type": "380"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "267",
+ "members": [
+ {
+ "name": "throttle-group",
+ "type": "str"
+ },
+ {
+ "name": "file",
+ "type": "363"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "268",
+ "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": "269",
+ "members": [
+ {
+ "name": "vdisk-id",
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "type": "377"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "270",
+ "tag": "driver",
+ "variants": [
+ {
+ "case": "file",
+ "type": "381"
+ },
+ {
+ "case": "gluster",
+ "type": "382"
+ },
+ {
+ "case": "luks",
+ "type": "383"
+ },
+ {
+ "case": "nfs",
+ "type": "384"
+ },
+ {
+ "case": "parallels",
+ "type": "385"
+ },
+ {
+ "case": "qcow",
+ "type": "386"
+ },
+ {
+ "case": "qcow2",
+ "type": "387"
+ },
+ {
+ "case": "qed",
+ "type": "388"
+ },
+ {
+ "case": "rbd",
+ "type": "389"
+ },
+ {
+ "case": "sheepdog",
+ "type": "390"
+ },
+ {
+ "case": "ssh",
+ "type": "391"
+ },
+ {
+ "case": "vdi",
+ "type": "392"
+ },
+ {
+ "case": "vhdx",
+ "type": "393"
+ },
+ {
+ "case": "vmdk",
+ "type": "394"
+ },
+ {
+ "case": "vpc",
+ "type": "395"
+ },
+ {
+ "case": "blkdebug",
+ "type": "0"
+ },
+ {
+ "case": "blklogwrites",
+ "type": "0"
+ },
+ {
+ "case": "blkverify",
+ "type": "0"
+ },
+ {
+ "case": "bochs",
+ "type": "0"
+ },
+ {
+ "case": "cloop",
+ "type": "0"
+ },
+ {
+ "case": "copy-on-read",
+ "type": "0"
+ },
+ {
+ "case": "dmg",
+ "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": "quorum",
+ "type": "0"
+ },
+ {
+ "case": "raw",
+ "type": "0"
+ },
+ {
+ "case": "replication",
+ "type": "0"
+ },
+ {
+ "case": "throttle",
+ "type": "0"
+ },
+ {
+ "case": "vvfat",
+ "type": "0"
+ },
+ {
+ "case": "vxhs",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "driver",
+ "type": "239"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "271",
+ "meta-type": "enum",
+ "values": [
+ "retain",
+ "read-only",
+ "read-write"
+ ]
+ },
+ {
+ "name": "272",
+ "meta-type": "enum",
+ "values": [
+ "read",
+ "write"
+ ]
+ },
+ {
+ "name": "273",
+ "meta-type": "enum",
+ "values": [
+ "ignore",
+ "report",
+ "stop"
+ ]
+ },
+ {
+ "name": "274",
+ "members": [
+ {
+ "type": "str"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "275",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "inet",
+ "type": "397"
+ },
+ {
+ "case": "unix",
+ "type": "398"
+ },
+ {
+ "case": "vsock",
+ "type": "399"
+ },
+ {
+ "case": "fd",
+ "type": "400"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "396"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "276",
+ "meta-type": "enum",
+ "values": [
+ "safe",
+ "hard"
+ ]
+ },
+ {
+ "name": "277",
+ "meta-type": "enum",
+ "values": [
+ "read",
+ "write",
+ "flush"
+ ]
+ },
+ {
+ "name": "278",
+ "meta-type": "enum",
+ "values": [
+ "utf8",
+ "base64"
+ ]
+ },
+ {
+ "name": "279",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "file",
+ "type": "402"
+ },
+ {
+ "case": "serial",
+ "type": "403"
+ },
+ {
+ "case": "parallel",
+ "type": "403"
+ },
+ {
+ "case": "pipe",
+ "type": "403"
+ },
+ {
+ "case": "socket",
+ "type": "404"
+ },
+ {
+ "case": "udp",
+ "type": "405"
+ },
+ {
+ "case": "pty",
+ "type": "406"
+ },
+ {
+ "case": "null",
+ "type": "406"
+ },
+ {
+ "case": "mux",
+ "type": "407"
+ },
+ {
+ "case": "msmouse",
+ "type": "406"
+ },
+ {
+ "case": "wctablet",
+ "type": "406"
+ },
+ {
+ "case": "braille",
+ "type": "406"
+ },
+ {
+ "case": "testdev",
+ "type": "406"
+ },
+ {
+ "case": "stdio",
+ "type": "408"
+ },
+ {
+ "case": "console",
+ "type": "406"
+ },
+ {
+ "case": "vc",
+ "type": "411"
+ },
+ {
+ "case": "ringbuf",
+ "type": "412"
+ },
+ {
+ "case": "memory",
+ "type": "412"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "401"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "280",
+ "meta-type": "enum",
+ "values": [
+ "elf",
+ "kdump-zlib",
+ "kdump-lzo",
+ "kdump-snappy",
+ "win-dmp"
+ ]
+ },
+ {
+ "name": "281",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "active",
+ "completed",
+ "failed"
+ ]
+ },
+ {
+ "name": "[280]",
+ "element-type": "280",
+ "meta-type": "array"
+ },
+ {
+ "name": "282",
+ "meta-type": "enum",
+ "values": [
+ "normal",
+ "none",
+ "all"
+ ]
+ },
+ {
+ "name": "[str]",
+ "element-type": "str",
+ "meta-type": "array"
+ },
+ {
+ "name": "283",
+ "meta-type": "enum",
+ "values": [
+ "half",
+ "full"
+ ]
+ },
+ {
+ "name": "284",
+ "meta-type": "enum",
+ "values": [
+ "off",
+ "on"
+ ]
+ },
+ {
+ "name": "285",
+ "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": "286",
+ "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": "287",
+ "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": "288",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "passthrough",
+ "type": "414"
+ },
+ {
+ "case": "emulator",
+ "type": "415"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "413"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "293",
+ "meta-type": "enum",
+ "values": [
+ "ipv4",
+ "ipv6",
+ "unix",
+ "vsock",
+ "unknown"
+ ]
+ },
+ {
+ "name": "[294]",
+ "element-type": "294",
+ "meta-type": "array"
+ },
+ {
+ "name": "294",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "293"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ },
+ {
+ "name": "x509_dname",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sasl_username",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[295]",
+ "element-type": "295",
+ "meta-type": "array"
+ },
+ {
+ "name": "295",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "293"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ },
+ {
+ "name": "auth",
+ "type": "296"
+ },
+ {
+ "name": "vencrypt",
+ "default": null,
+ "type": "297"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "296",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "vnc",
+ "ra2",
+ "ra2ne",
+ "tight",
+ "ultra",
+ "tls",
+ "vencrypt",
+ "sasl"
+ ]
+ },
+ {
+ "name": "297",
+ "meta-type": "enum",
+ "values": [
+ "plain",
+ "tls-none",
+ "x509-none",
+ "tls-vnc",
+ "x509-vnc",
+ "tls-plain",
+ "x509-plain",
+ "tls-sasl",
+ "x509-sasl"
+ ]
+ },
+ {
+ "name": "298",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "293"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "299",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "293"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[300]",
+ "element-type": "300",
+ "meta-type": "array"
+ },
+ {
+ "name": "300",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "number",
+ "type": "417"
+ },
+ {
+ "case": "qcode",
+ "type": "418"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "416"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[301]",
+ "element-type": "301",
+ "meta-type": "array"
+ },
+ {
+ "name": "301",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "key",
+ "type": "420"
+ },
+ {
+ "case": "btn",
+ "type": "421"
+ },
+ {
+ "case": "rel",
+ "type": "422"
+ },
+ {
+ "case": "abs",
+ "type": "422"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "419"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "302",
+ "meta-type": "enum",
+ "values": [
+ "default",
+ "none",
+ "gtk",
+ "sdl",
+ "egl-headless",
+ "curses",
+ "cocoa",
+ "spice-app"
+ ]
+ },
+ {
+ "name": "303",
+ "meta-type": "enum",
+ "values": [
+ "off",
+ "on",
+ "core",
+ "es"
+ ]
+ },
+ {
+ "name": "304",
+ "members": [
+ {
+ "name": "grab-on-hover",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "zoom-to-fit",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "305",
+ "members": [
+ {
+ "name": "charset",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "306",
+ "members": [
+ {
+ "name": "rendernode",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "307",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "setup",
+ "cancelling",
+ "cancelled",
+ "active",
+ "postcopy-active",
+ "postcopy-paused",
+ "postcopy-recover",
+ "completed",
+ "failed",
+ "colo",
+ "pre-switchover",
+ "device"
+ ]
+ },
+ {
+ "name": "308",
+ "members": [
+ {
+ "name": "transferred",
+ "type": "int"
+ },
+ {
+ "name": "remaining",
+ "type": "int"
+ },
+ {
+ "name": "total",
+ "type": "int"
+ },
+ {
+ "name": "duplicate",
+ "type": "int"
+ },
+ {
+ "name": "skipped",
+ "type": "int"
+ },
+ {
+ "name": "normal",
+ "type": "int"
+ },
+ {
+ "name": "normal-bytes",
+ "type": "int"
+ },
+ {
+ "name": "dirty-pages-rate",
+ "type": "int"
+ },
+ {
+ "name": "mbps",
+ "type": "number"
+ },
+ {
+ "name": "dirty-sync-count",
+ "type": "int"
+ },
+ {
+ "name": "postcopy-requests",
+ "type": "int"
+ },
+ {
+ "name": "page-size",
+ "type": "int"
+ },
+ {
+ "name": "multifd-bytes",
+ "type": "int"
+ },
+ {
+ "name": "pages-per-second",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "309",
+ "members": [
+ {
+ "name": "cache-size",
+ "type": "int"
+ },
+ {
+ "name": "bytes",
+ "type": "int"
+ },
+ {
+ "name": "pages",
+ "type": "int"
+ },
+ {
+ "name": "cache-miss",
+ "type": "int"
+ },
+ {
+ "name": "cache-miss-rate",
+ "type": "number"
+ },
+ {
+ "name": "overflow",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "310",
+ "members": [
+ {
+ "name": "pages",
+ "type": "int"
+ },
+ {
+ "name": "busy",
+ "type": "int"
+ },
+ {
+ "name": "busy-rate",
+ "type": "number"
+ },
+ {
+ "name": "compressed-size",
+ "type": "int"
+ },
+ {
+ "name": "compression-rate",
+ "type": "number"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[311]",
+ "element-type": "311",
+ "meta-type": "array"
+ },
+ {
+ "name": "311",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "inet",
+ "type": "379"
+ },
+ {
+ "case": "unix",
+ "type": "424"
+ },
+ {
+ "case": "vsock",
+ "type": "425"
+ },
+ {
+ "case": "fd",
+ "type": "426"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "423"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "312",
+ "meta-type": "enum",
+ "values": [
+ "xbzrle",
+ "rdma-pin-all",
+ "auto-converge",
+ "zero-blocks",
+ "compress",
+ "events",
+ "postcopy-ram",
+ "x-colo",
+ "release-ram",
+ "block",
+ "return-path",
+ "pause-before-switchover",
+ "multifd",
+ "dirty-bitmaps",
+ "postcopy-blocktime",
+ "late-block-activate",
+ "x-ignore-shared"
+ ]
+ },
+ {
+ "name": "313",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "primary",
+ "secondary"
+ ]
+ },
+ {
+ "name": "314",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "request",
+ "error",
+ "processing"
+ ]
+ },
+ {
+ "name": "number",
+ "json-type": "number",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "[315]",
+ "element-type": "315",
+ "meta-type": "array"
+ },
+ {
+ "name": "315",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "abort",
+ "type": "428"
+ },
+ {
+ "case": "block-dirty-bitmap-add",
+ "type": "429"
+ },
+ {
+ "case": "block-dirty-bitmap-clear",
+ "type": "430"
+ },
+ {
+ "case": "block-dirty-bitmap-enable",
+ "type": "430"
+ },
+ {
+ "case": "block-dirty-bitmap-disable",
+ "type": "430"
+ },
+ {
+ "case": "block-dirty-bitmap-merge",
+ "type": "431"
+ },
+ {
+ "case": "blockdev-backup",
+ "type": "432"
+ },
+ {
+ "case": "blockdev-snapshot",
+ "type": "433"
+ },
+ {
+ "case": "blockdev-snapshot-internal-sync",
+ "type": "434"
+ },
+ {
+ "case": "blockdev-snapshot-sync",
+ "type": "435"
+ },
+ {
+ "case": "drive-backup",
+ "type": "436"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "427"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "316",
+ "members": [
+ {
+ "name": "completion-mode",
+ "default": null,
+ "type": "437"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "317",
+ "meta-type": "enum",
+ "values": [
+ "unavailable",
+ "disabled",
+ "enabled"
+ ]
+ },
+ {
+ "name": "318",
+ "meta-type": "enum",
+ "values": [
+ "builtin",
+ "enum",
+ "array",
+ "object",
+ "alternate",
+ "command",
+ "event"
+ ]
+ },
+ {
+ "name": "319",
+ "members": [
+ {
+ "name": "json-type",
+ "type": "438"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "320",
+ "members": [
+ {
+ "name": "values",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "321",
+ "members": [
+ {
+ "name": "element-type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "322",
+ "members": [
+ {
+ "name": "members",
+ "type": "[439]"
+ },
+ {
+ "name": "tag",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "variants",
+ "default": null,
+ "type": "[440]"
+ },
+ {
+ "name": "features",
+ "default": null,
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "323",
+ "members": [
+ {
+ "name": "members",
+ "type": "[441]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "324",
+ "members": [
+ {
+ "name": "arg-type",
+ "type": "str"
+ },
+ {
+ "name": "ret-type",
+ "type": "str"
+ },
+ {
+ "name": "allow-oob",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "325",
+ "members": [
+ {
+ "name": "arg-type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "326",
+ "members": [
+ {
+ "name": "node-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "socket-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "die-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "core-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "thread-id",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "327",
+ "meta-type": "enum",
+ "values": [
+ "x86",
+ "sparc",
+ "ppc",
+ "mips",
+ "tricore",
+ "s390",
+ "riscv",
+ "other"
+ ]
+ },
+ {
+ "name": "328",
+ "members": [
+ {
+ "name": "pc",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "329",
+ "members": [
+ {
+ "name": "pc",
+ "type": "int"
+ },
+ {
+ "name": "npc",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "330",
+ "members": [
+ {
+ "name": "nip",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "331",
+ "members": [
+ {
+ "name": "PC",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "332",
+ "members": [
+ {
+ "name": "PC",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "333",
+ "members": [
+ {
+ "name": "cpu-state",
+ "type": "442"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "334",
+ "members": [
+ {
+ "name": "pc",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "335",
+ "meta-type": "enum",
+ "values": [
+ "aarch64",
+ "alpha",
+ "arm",
+ "cris",
+ "hppa",
+ "i386",
+ "lm32",
+ "m68k",
+ "microblaze",
+ "microblazeel",
+ "mips",
+ "mips64",
+ "mips64el",
+ "mipsel",
+ "moxie",
+ "nios2",
+ "or1k",
+ "ppc",
+ "ppc64",
+ "riscv32",
+ "riscv64",
+ "s390x",
+ "sh4",
+ "sh4eb",
+ "sparc",
+ "sparc64",
+ "tricore",
+ "unicore32",
+ "x86_64",
+ "xtensa",
+ "xtensaeb"
+ ]
+ },
+ {
+ "name": "336",
+ "meta-type": "enum",
+ "values": [
+ "default",
+ "preferred",
+ "bind",
+ "interleave"
+ ]
+ },
+ {
+ "name": "337",
+ "meta-type": "enum",
+ "values": [
+ "node",
+ "dist",
+ "cpu"
+ ]
+ },
+ {
+ "name": "338",
+ "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"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "339",
+ "members": [
+ {
+ "name": "src",
+ "type": "int"
+ },
+ {
+ "name": "dst",
+ "type": "int"
+ },
+ {
+ "name": "val",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "340",
+ "members": [
+ {
+ "name": "node-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "socket-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "die-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "core-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "thread-id",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "341",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "props",
+ "default": null,
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "342",
+ "meta-type": "enum",
+ "values": [
+ "incompatible",
+ "identical",
+ "superset",
+ "subset"
+ ]
+ },
+ {
+ "name": "343",
+ "meta-type": "enum",
+ "values": [
+ "static",
+ "full"
+ ]
+ },
+ {
+ "name": "[344]",
+ "element-type": "344",
+ "meta-type": "array"
+ },
+ {
+ "name": "344",
+ "meta-type": "enum",
+ "values": [
+ "oob"
+ ]
+ },
+ {
+ "name": "345",
+ "members": [
+ {
+ "name": "major",
+ "type": "int"
+ },
+ {
+ "name": "minor",
+ "type": "int"
+ },
+ {
+ "name": "micro",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[346]",
+ "element-type": "346",
+ "meta-type": "array"
+ },
+ {
+ "name": "346",
+ "members": [
+ {
+ "name": "bus",
+ "type": "int"
+ },
+ {
+ "name": "slot",
+ "type": "int"
+ },
+ {
+ "name": "function",
+ "type": "int"
+ },
+ {
+ "name": "class_info",
+ "type": "443"
+ },
+ {
+ "name": "id",
+ "type": "444"
+ },
+ {
+ "name": "irq",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "qdev_id",
+ "type": "str"
+ },
+ {
+ "name": "pci_bridge",
+ "default": null,
+ "type": "445"
+ },
+ {
+ "name": "regions",
+ "type": "[446]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[347]",
+ "element-type": "347",
+ "meta-type": "array"
+ },
+ {
+ "name": "347",
+ "members": [
+ {
+ "name": "fd",
+ "type": "int"
+ },
+ {
+ "name": "opaque",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[348]",
+ "element-type": "348",
+ "meta-type": "array"
+ },
+ {
+ "name": "348",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "447"
+ },
+ {
+ "name": "help",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "default",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "349",
+ "meta-type": "enum",
+ "values": [
+ "dimm",
+ "nvdimm",
+ "virtio-pmem"
+ ]
+ },
+ {
+ "name": "350",
+ "members": [
+ {
+ "name": "data",
+ "type": "448"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "351",
+ "members": [
+ {
+ "name": "data",
+ "type": "449"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "352",
+ "meta-type": "enum",
+ "values": [
+ "DIMM",
+ "CPU"
+ ]
+ },
+ {
+ "name": "354",
+ "meta-type": "enum",
+ "values": [
+ "hyper-v",
+ "s390"
+ ]
+ },
+ {
+ "name": "355",
+ "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": "356",
+ "members": [
+ {
+ "name": "core",
+ "type": "int"
+ },
+ {
+ "name": "psw-mask",
+ "type": "int"
+ },
+ {
+ "name": "psw-addr",
+ "type": "int"
+ },
+ {
+ "name": "reason",
+ "type": "450"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "357",
+ "meta-type": "enum",
+ "values": [
+ "active",
+ "disabled",
+ "frozen",
+ "locked",
+ "inconsistent"
+ ]
+ },
+ {
+ "name": "[358]",
+ "element-type": "358",
+ "meta-type": "array"
+ },
+ {
+ "name": "358",
+ "members": [
+ {
+ "name": "interval_length",
+ "type": "int"
+ },
+ {
+ "name": "min_rd_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "max_rd_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_rd_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "min_wr_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "max_wr_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_wr_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "min_flush_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "max_flush_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_flush_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_rd_queue_depth",
+ "type": "number"
+ },
+ {
+ "name": "avg_wr_queue_depth",
+ "type": "number"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "359",
+ "members": [
+ {
+ "name": "boundaries",
+ "type": "[int]"
+ },
+ {
+ "name": "bins",
+ "type": "[int]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[67]",
+ "element-type": "67",
+ "meta-type": "array"
+ },
+ {
+ "name": "360",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "qcow2",
+ "type": "452"
+ },
+ {
+ "case": "vmdk",
+ "type": "453"
+ },
+ {
+ "case": "luks",
+ "type": "454"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "451"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "361",
+ "meta-type": "enum",
+ "values": [
+ "block-backend",
+ "block-job",
+ "block-driver"
+ ]
+ },
+ {
+ "name": "[362]",
+ "element-type": "362",
+ "meta-type": "array"
+ },
+ {
+ "name": "362",
+ "meta-type": "enum",
+ "values": [
+ "consistent-read",
+ "write",
+ "write-unchanged",
+ "resize",
+ "graph-mod"
+ ]
+ },
+ {
+ "name": "363",
+ "members": [
+ {
+ "type": "45"
+ },
+ {
+ "type": "str"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "[364]",
+ "element-type": "364",
+ "meta-type": "array"
+ },
+ {
+ "name": "364",
+ "members": [
+ {
+ "name": "event",
+ "type": "455"
+ },
+ {
+ "name": "state",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iotype",
+ "default": null,
+ "type": "456"
+ },
+ {
+ "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": "[365]",
+ "element-type": "365",
+ "meta-type": "array"
+ },
+ {
+ "name": "365",
+ "members": [
+ {
+ "name": "event",
+ "type": "455"
+ },
+ {
+ "name": "state",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "new_state",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "366",
+ "meta-type": "enum",
+ "values": [
+ "auto",
+ "on",
+ "off"
+ ]
+ },
+ {
+ "name": "367",
+ "meta-type": "enum",
+ "values": [
+ "threads",
+ "native"
+ ]
+ },
+ {
+ "name": "368",
+ "meta-type": "enum",
+ "values": [
+ "tcp",
+ "iser"
+ ]
+ },
+ {
+ "name": "369",
+ "meta-type": "enum",
+ "values": [
+ "crc32c",
+ "none",
+ "crc32c-none",
+ "none-crc32c"
+ ]
+ },
+ {
+ "name": "370",
+ "members": [
+ {
+ "name": "type",
+ "type": "457"
+ },
+ {
+ "name": "host",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "371",
+ "members": [
+ {
+ "type": "45"
+ },
+ {
+ "type": "str"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "372",
+ "members": [
+ {
+ "type": "458"
+ },
+ {
+ "type": "459"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "373",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "aes",
+ "type": "461"
+ },
+ {
+ "case": "luks",
+ "type": "462"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "460"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "374",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "aes",
+ "type": "461"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "463"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[363]",
+ "element-type": "363",
+ "meta-type": "array"
+ },
+ {
+ "name": "375",
+ "meta-type": "enum",
+ "values": [
+ "quorum",
+ "fifo"
+ ]
+ },
+ {
+ "name": "[376]",
+ "element-type": "376",
+ "meta-type": "array"
+ },
+ {
+ "name": "376",
+ "meta-type": "enum",
+ "values": [
+ "cephx",
+ "none"
+ ]
+ },
+ {
+ "name": "[377]",
+ "element-type": "377",
+ "meta-type": "array"
+ },
+ {
+ "name": "377",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "378",
+ "meta-type": "enum",
+ "values": [
+ "primary",
+ "secondary"
+ ]
+ },
+ {
+ "name": "379",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "numeric",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "to",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ipv4",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "ipv6",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "380",
+ "tag": "mode",
+ "variants": [
+ {
+ "case": "hash",
+ "type": "465"
+ },
+ {
+ "case": "none",
+ "type": "0"
+ },
+ {
+ "case": "known_hosts",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "mode",
+ "type": "464"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "381",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "preallocation",
+ "default": null,
+ "type": "466"
+ },
+ {
+ "name": "nocow",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "382",
+ "members": [
+ {
+ "name": "location",
+ "type": "249"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "preallocation",
+ "default": null,
+ "type": "466"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "383",
+ "members": [
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cipher-alg",
+ "default": null,
+ "type": "467"
+ },
+ {
+ "name": "cipher-mode",
+ "default": null,
+ "type": "468"
+ },
+ {
+ "name": "ivgen-alg",
+ "default": null,
+ "type": "469"
+ },
+ {
+ "name": "ivgen-hash-alg",
+ "default": null,
+ "type": "470"
+ },
+ {
+ "name": "hash-alg",
+ "default": null,
+ "type": "470"
+ },
+ {
+ "name": "iter-time",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "file",
+ "type": "363"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "384",
+ "members": [
+ {
+ "name": "location",
+ "type": "255"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "385",
+ "members": [
+ {
+ "name": "file",
+ "type": "363"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "cluster-size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "386",
+ "members": [
+ {
+ "name": "file",
+ "type": "363"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "471"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "387",
+ "members": [
+ {
+ "name": "file",
+ "type": "363"
+ },
+ {
+ "name": "data-file",
+ "default": null,
+ "type": "363"
+ },
+ {
+ "name": "data-file-raw",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "version",
+ "default": null,
+ "type": "472"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-fmt",
+ "default": null,
+ "type": "239"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "471"
+ },
+ {
+ "name": "cluster-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "preallocation",
+ "default": null,
+ "type": "466"
+ },
+ {
+ "name": "lazy-refcounts",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "refcount-bits",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "388",
+ "members": [
+ {
+ "name": "file",
+ "type": "363"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-fmt",
+ "default": null,
+ "type": "239"
+ },
+ {
+ "name": "cluster-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "table-size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "389",
+ "members": [
+ {
+ "name": "location",
+ "type": "263"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "cluster-size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "390",
+ "members": [
+ {
+ "name": "location",
+ "type": "265"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "preallocation",
+ "default": null,
+ "type": "466"
+ },
+ {
+ "name": "redundancy",
+ "default": null,
+ "type": "473"
+ },
+ {
+ "name": "object-size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "391",
+ "members": [
+ {
+ "name": "location",
+ "type": "266"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "392",
+ "members": [
+ {
+ "name": "file",
+ "type": "363"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "preallocation",
+ "default": null,
+ "type": "466"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "393",
+ "members": [
+ {
+ "name": "file",
+ "type": "363"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "log-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "block-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "subformat",
+ "default": null,
+ "type": "474"
+ },
+ {
+ "name": "block-state-zero",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "394",
+ "members": [
+ {
+ "name": "file",
+ "type": "363"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "extents",
+ "default": null,
+ "type": "[363]"
+ },
+ {
+ "name": "subformat",
+ "default": null,
+ "type": "475"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "adapter-type",
+ "default": null,
+ "type": "476"
+ },
+ {
+ "name": "hwversion",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "zeroed-grain",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "395",
+ "members": [
+ {
+ "name": "file",
+ "type": "363"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "subformat",
+ "default": null,
+ "type": "477"
+ },
+ {
+ "name": "force-size",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "null",
+ "json-type": "null",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "396",
+ "meta-type": "enum",
+ "values": [
+ "inet",
+ "unix",
+ "vsock",
+ "fd"
+ ]
+ },
+ {
+ "name": "397",
+ "members": [
+ {
+ "name": "data",
+ "type": "379"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "398",
+ "members": [
+ {
+ "name": "data",
+ "type": "424"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "399",
+ "members": [
+ {
+ "name": "data",
+ "type": "425"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "400",
+ "members": [
+ {
+ "name": "data",
+ "type": "426"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "401",
+ "meta-type": "enum",
+ "values": [
+ "file",
+ "serial",
+ "parallel",
+ "pipe",
+ "socket",
+ "udp",
+ "pty",
+ "null",
+ "mux",
+ "msmouse",
+ "wctablet",
+ "braille",
+ "testdev",
+ "stdio",
+ "console",
+ "vc",
+ "ringbuf",
+ "memory"
+ ]
+ },
+ {
+ "name": "402",
+ "members": [
+ {
+ "name": "data",
+ "type": "478"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "403",
+ "members": [
+ {
+ "name": "data",
+ "type": "479"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "404",
+ "members": [
+ {
+ "name": "data",
+ "type": "480"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "405",
+ "members": [
+ {
+ "name": "data",
+ "type": "481"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "406",
+ "members": [
+ {
+ "name": "data",
+ "type": "482"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "407",
+ "members": [
+ {
+ "name": "data",
+ "type": "483"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "408",
+ "members": [
+ {
+ "name": "data",
+ "type": "484"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "411",
+ "members": [
+ {
+ "name": "data",
+ "type": "487"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "412",
+ "members": [
+ {
+ "name": "data",
+ "type": "488"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "413",
+ "meta-type": "enum",
+ "values": [
+ "passthrough",
+ "emulator"
+ ]
+ },
+ {
+ "name": "414",
+ "members": [
+ {
+ "name": "data",
+ "type": "489"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "415",
+ "members": [
+ {
+ "name": "data",
+ "type": "490"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "416",
+ "meta-type": "enum",
+ "values": [
+ "number",
+ "qcode"
+ ]
+ },
+ {
+ "name": "417",
+ "members": [
+ {
+ "name": "data",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "418",
+ "members": [
+ {
+ "name": "data",
+ "type": "491"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "419",
+ "meta-type": "enum",
+ "values": [
+ "key",
+ "btn",
+ "rel",
+ "abs"
+ ]
+ },
+ {
+ "name": "420",
+ "members": [
+ {
+ "name": "data",
+ "type": "492"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "421",
+ "members": [
+ {
+ "name": "data",
+ "type": "493"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "422",
+ "members": [
+ {
+ "name": "data",
+ "type": "494"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "423",
+ "meta-type": "enum",
+ "values": [
+ "inet",
+ "unix",
+ "vsock",
+ "fd"
+ ]
+ },
+ {
+ "name": "424",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "425",
+ "members": [
+ {
+ "name": "cid",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "426",
+ "members": [
+ {
+ "name": "str",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "427",
+ "meta-type": "enum",
+ "values": [
+ "abort",
+ "block-dirty-bitmap-add",
+ "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": "428",
+ "members": [
+ {
+ "name": "data",
+ "type": "495"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "429",
+ "members": [
+ {
+ "name": "data",
+ "type": "31"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "430",
+ "members": [
+ {
+ "name": "data",
+ "type": "32"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "431",
+ "members": [
+ {
+ "name": "data",
+ "type": "33"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "432",
+ "members": [
+ {
+ "name": "data",
+ "type": "27"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "433",
+ "members": [
+ {
+ "name": "data",
+ "type": "23"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "434",
+ "members": [
+ {
+ "name": "data",
+ "type": "65"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "435",
+ "members": [
+ {
+ "name": "data",
+ "type": "22"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "436",
+ "members": [
+ {
+ "name": "data",
+ "type": "26"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "437",
+ "meta-type": "enum",
+ "values": [
+ "individual",
+ "grouped"
+ ]
+ },
+ {
+ "name": "438",
+ "meta-type": "enum",
+ "values": [
+ "string",
+ "number",
+ "int",
+ "boolean",
+ "null",
+ "object",
+ "array",
+ "value"
+ ]
+ },
+ {
+ "name": "[439]",
+ "element-type": "439",
+ "meta-type": "array"
+ },
+ {
+ "name": "439",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "default",
+ "default": null,
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[440]",
+ "element-type": "440",
+ "meta-type": "array"
+ },
+ {
+ "name": "440",
+ "members": [
+ {
+ "name": "case",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[441]",
+ "element-type": "441",
+ "meta-type": "array"
+ },
+ {
+ "name": "441",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "442",
+ "meta-type": "enum",
+ "values": [
+ "uninitialized",
+ "stopped",
+ "check-stop",
+ "operating",
+ "load"
+ ]
+ },
+ {
+ "name": "443",
+ "members": [
+ {
+ "name": "desc",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "class",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "444",
+ "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": "445",
+ "members": [
+ {
+ "name": "bus",
+ "type": "496"
+ },
+ {
+ "name": "devices",
+ "default": null,
+ "type": "[346]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[446]",
+ "element-type": "446",
+ "meta-type": "array"
+ },
+ {
+ "name": "446",
+ "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": "447",
+ "meta-type": "enum",
+ "values": [
+ "string",
+ "boolean",
+ "number",
+ "size"
+ ]
+ },
+ {
+ "name": "448",
+ "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": "449",
+ "members": [
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "memaddr",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "memdev",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "450",
+ "meta-type": "enum",
+ "values": [
+ "unknown",
+ "disabled-wait",
+ "extint-loop",
+ "pgmint-loop",
+ "opint-loop"
+ ]
+ },
+ {
+ "name": "451",
+ "meta-type": "enum",
+ "values": [
+ "qcow2",
+ "vmdk",
+ "luks"
+ ]
+ },
+ {
+ "name": "452",
+ "members": [
+ {
+ "name": "data",
+ "type": "497"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "453",
+ "members": [
+ {
+ "name": "data",
+ "type": "498"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "454",
+ "members": [
+ {
+ "name": "data",
+ "type": "499"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "455",
+ "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": "456",
+ "meta-type": "enum",
+ "values": [
+ "read",
+ "write",
+ "write-zeroes",
+ "discard",
+ "flush",
+ "block-status"
+ ]
+ },
+ {
+ "name": "457",
+ "meta-type": "enum",
+ "values": [
+ "inet"
+ ]
+ },
+ {
+ "name": "458",
+ "members": [
+ {
+ "name": "template",
+ "default": null,
+ "type": "459"
+ },
+ {
+ "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": "459",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "constant",
+ "cached",
+ "all"
+ ]
+ },
+ {
+ "name": "460",
+ "meta-type": "enum",
+ "values": [
+ "aes",
+ "luks"
+ ]
+ },
+ {
+ "name": "461",
+ "members": [
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "462",
+ "members": [
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "463",
+ "meta-type": "enum",
+ "values": [
+ "aes"
+ ]
+ },
+ {
+ "name": "464",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "hash",
+ "known_hosts"
+ ]
+ },
+ {
+ "name": "465",
+ "members": [
+ {
+ "name": "type",
+ "type": "500"
+ },
+ {
+ "name": "hash",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "466",
+ "meta-type": "enum",
+ "values": [
+ "off",
+ "metadata",
+ "falloc",
+ "full"
+ ]
+ },
+ {
+ "name": "467",
+ "meta-type": "enum",
+ "values": [
+ "aes-128",
+ "aes-192",
+ "aes-256",
+ "des-rfb",
+ "3des",
+ "cast5-128",
+ "serpent-128",
+ "serpent-192",
+ "serpent-256",
+ "twofish-128",
+ "twofish-192",
+ "twofish-256"
+ ]
+ },
+ {
+ "name": "468",
+ "meta-type": "enum",
+ "values": [
+ "ecb",
+ "cbc",
+ "xts",
+ "ctr"
+ ]
+ },
+ {
+ "name": "469",
+ "meta-type": "enum",
+ "values": [
+ "plain",
+ "plain64",
+ "essiv"
+ ]
+ },
+ {
+ "name": "470",
+ "meta-type": "enum",
+ "values": [
+ "md5",
+ "sha1",
+ "sha224",
+ "sha256",
+ "sha384",
+ "sha512",
+ "ripemd160"
+ ]
+ },
+ {
+ "name": "471",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "qcow",
+ "type": "461"
+ },
+ {
+ "case": "luks",
+ "type": "502"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "501"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "472",
+ "meta-type": "enum",
+ "values": [
+ "v2",
+ "v3"
+ ]
+ },
+ {
+ "name": "473",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "full",
+ "type": "504"
+ },
+ {
+ "case": "erasure-coded",
+ "type": "505"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "503"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "474",
+ "meta-type": "enum",
+ "values": [
+ "dynamic",
+ "fixed"
+ ]
+ },
+ {
+ "name": "475",
+ "meta-type": "enum",
+ "values": [
+ "monolithicSparse",
+ "monolithicFlat",
+ "twoGbMaxExtentSparse",
+ "twoGbMaxExtentFlat",
+ "streamOptimized"
+ ]
+ },
+ {
+ "name": "476",
+ "meta-type": "enum",
+ "values": [
+ "ide",
+ "buslogic",
+ "lsilogic",
+ "legacyESX"
+ ]
+ },
+ {
+ "name": "477",
+ "meta-type": "enum",
+ "values": [
+ "dynamic",
+ "fixed"
+ ]
+ },
+ {
+ "name": "478",
+ "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": "479",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "480",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "type": "275"
+ },
+ {
+ "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"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "481",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "remote",
+ "type": "275"
+ },
+ {
+ "name": "local",
+ "default": null,
+ "type": "275"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "482",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "483",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "chardev",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "484",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "signal",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "487",
+ "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": "488",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "489",
+ "members": [
+ {
+ "name": "path",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cancel-path",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "490",
+ "members": [
+ {
+ "name": "chardev",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "491",
+ "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"
+ ]
+ },
+ {
+ "name": "492",
+ "members": [
+ {
+ "name": "key",
+ "type": "300"
+ },
+ {
+ "name": "down",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "493",
+ "members": [
+ {
+ "name": "button",
+ "type": "506"
+ },
+ {
+ "name": "down",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "494",
+ "members": [
+ {
+ "name": "axis",
+ "type": "507"
+ },
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "495",
+ "members": [
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "496",
+ "members": [
+ {
+ "name": "number",
+ "type": "int"
+ },
+ {
+ "name": "secondary",
+ "type": "int"
+ },
+ {
+ "name": "subordinate",
+ "type": "int"
+ },
+ {
+ "name": "io_range",
+ "type": "508"
+ },
+ {
+ "name": "memory_range",
+ "type": "508"
+ },
+ {
+ "name": "prefetchable_range",
+ "type": "508"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "497",
+ "members": [
+ {
+ "name": "compat",
+ "type": "str"
+ },
+ {
+ "name": "data-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "data-file-raw",
+ "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": "509"
+ },
+ {
+ "name": "bitmaps",
+ "default": null,
+ "type": "[510]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "498",
+ "members": [
+ {
+ "name": "create-type",
+ "type": "str"
+ },
+ {
+ "name": "cid",
+ "type": "int"
+ },
+ {
+ "name": "parent-cid",
+ "type": "int"
+ },
+ {
+ "name": "extents",
+ "type": "[233]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "499",
+ "members": [
+ {
+ "name": "cipher-alg",
+ "type": "467"
+ },
+ {
+ "name": "cipher-mode",
+ "type": "468"
+ },
+ {
+ "name": "ivgen-alg",
+ "type": "469"
+ },
+ {
+ "name": "ivgen-hash-alg",
+ "default": null,
+ "type": "470"
+ },
+ {
+ "name": "hash-alg",
+ "type": "470"
+ },
+ {
+ "name": "payload-offset",
+ "type": "int"
+ },
+ {
+ "name": "master-key-iters",
+ "type": "int"
+ },
+ {
+ "name": "uuid",
+ "type": "str"
+ },
+ {
+ "name": "slots",
+ "type": "[511]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "500",
+ "meta-type": "enum",
+ "values": [
+ "md5",
+ "sha1"
+ ]
+ },
+ {
+ "name": "501",
+ "meta-type": "enum",
+ "values": [
+ "qcow",
+ "luks"
+ ]
+ },
+ {
+ "name": "502",
+ "members": [
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cipher-alg",
+ "default": null,
+ "type": "467"
+ },
+ {
+ "name": "cipher-mode",
+ "default": null,
+ "type": "468"
+ },
+ {
+ "name": "ivgen-alg",
+ "default": null,
+ "type": "469"
+ },
+ {
+ "name": "ivgen-hash-alg",
+ "default": null,
+ "type": "470"
+ },
+ {
+ "name": "hash-alg",
+ "default": null,
+ "type": "470"
+ },
+ {
+ "name": "iter-time",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "503",
+ "meta-type": "enum",
+ "values": [
+ "full",
+ "erasure-coded"
+ ]
+ },
+ {
+ "name": "504",
+ "members": [
+ {
+ "name": "copies",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "505",
+ "members": [
+ {
+ "name": "data-strips",
+ "type": "int"
+ },
+ {
+ "name": "parity-strips",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "506",
+ "meta-type": "enum",
+ "values": [
+ "left",
+ "middle",
+ "right",
+ "wheel-up",
+ "wheel-down",
+ "side",
+ "extra"
+ ]
+ },
+ {
+ "name": "507",
+ "meta-type": "enum",
+ "values": [
+ "x",
+ "y"
+ ]
+ },
+ {
+ "name": "508",
+ "members": [
+ {
+ "name": "base",
+ "type": "int"
+ },
+ {
+ "name": "limit",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "509",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "luks",
+ "type": "499"
+ },
+ {
+ "case": "aes",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "460"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[510]",
+ "element-type": "510",
+ "meta-type": "array"
+ },
+ {
+ "name": "510",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "granularity",
+ "type": "int"
+ },
+ {
+ "name": "flags",
+ "type": "[512]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[233]",
+ "element-type": "233",
+ "meta-type": "array"
+ },
+ {
+ "name": "[511]",
+ "element-type": "511",
+ "meta-type": "array"
+ },
+ {
+ "name": "511",
+ "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": "[512]",
+ "element-type": "512",
+ "meta-type": "array"
+ },
+ {
+ "name": "512",
+ "meta-type": "enum",
+ "values": [
+ "in-use",
+ "auto"
+ ]
+ }
+ ],
+ "id": "libvirt-38"
+}
+
+{
+ "execute": "query-cpu-model-expansion",
+ "arguments": {
+ "type": "static",
+ "model": {
+ "name": "host"
+ }
+ },
+ "id": "libvirt-39"
+}
+
+{
+ "return": {
+ "model": {
+ "name": "gen15a-base",
+ "props": {
+ "aen": true,
+ "cmmnt": true,
+ "vxpdeh": true,
+ "aefsi": true,
+ "csske": true,
+ "mepoch": true,
+ "msa9": true,
+ "msa8": true,
+ "msa7": true,
+ "msa6": true,
+ "msa5": true,
+ "msa4": true,
+ "msa3": true,
+ "msa2": true,
+ "msa1": true,
+ "sthyi": true,
+ "edat": true,
+ "ri": true,
+ "deflate": true,
+ "edat2": true,
+ "etoken": true,
+ "vx": true,
+ "ipter": true,
+ "mepochptff": true,
+ "ap": true,
+ "vxeh": true,
+ "vxpd": true,
+ "esop": true,
+ "msa9_pckmo": true,
+ "vxeh2": true,
+ "esort": true,
+ "apqi": true,
+ "apft": true,
+ "iep": true,
+ "apqci": true,
+ "cte": true,
+ "bpb": true,
+ "gs": true,
+ "ppa15": true,
+ "zpci": true,
+ "sea_esop2": true,
+ "te": true,
+ "cmm": true
+ }
+ }
+ },
+ "id": "libvirt-39"
+}
+
+{
+ "execute": "query-cpu-model-expansion",
+ "arguments": {
+ "type": "static",
+ "model": {
+ "name": "host",
+ "props": {
+ "migratable": false
+ }
+ }
+ },
+ "id": "libvirt-40"
+}
+
+{
+ "id": "libvirt-40",
+ "error": {
+ "class": "GenericError",
+ "desc": "Property '.migratable' not found"
+ }
+}
+
+{
+ "execute": "qmp_capabilities",
+ "id": "libvirt-1"
+}
+
+{
+ "return": {
+ },
+ "id": "libvirt-1"
+}
+
+{
+ "execute": "query-cpu-definitions",
+ "id": "libvirt-2"
+}
+
+{
+ "return": [
+ {
+ "name": "z800-base",
+ "typename": "z800-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.2-base",
+ "typename": "z890.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.2",
+ "typename": "z9EC.2-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "msa1",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13.2",
+ "typename": "z13.2-s390x-cpu",
+ "unavailable-features": [
+ "ppno-sha-512-drng",
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "bpb",
+ "ppa15",
+ "dfppc",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "ri",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "gen13ptff",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC-base",
+ "typename": "z9BC-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.5-base",
+ "typename": "z990.5-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.2",
+ "typename": "z890.2-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z890",
+ "typename": "z890-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC",
+ "typename": "z9BC-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "msa1",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13",
+ "typename": "z13-s390x-cpu",
+ "unavailable-features": [
+ "ppno-sha-512-drng",
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "bpb",
+ "ppa15",
+ "dfppc",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "ri",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "gen13ptff",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z196",
+ "typename": "z196-s390x-cpu",
+ "unavailable-features": [
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "bpb",
+ "ppa15",
+ "aefsi",
+ "sthyi",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13s",
+ "typename": "z13s-s390x-cpu",
+ "unavailable-features": [
+ "ppno-sha-512-drng",
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "bpb",
+ "ppa15",
+ "dfppc",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "ri",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "gen13ptff",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "host",
+ "typename": "host-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": false
+ },
+ {
+ "name": "z990.3",
+ "typename": "z990.3-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13s-base",
+ "typename": "z13s-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "dfppc",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "gen13ptff",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC",
+ "typename": "z9EC-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "msa1",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "gen15a",
+ "typename": "gen15a-s390x-cpu",
+ "unavailable-features": [
+ "ppno-sha-512-drng",
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "etoken",
+ "vxpdeh",
+ "vxeh2",
+ "mepoch",
+ "vxeh",
+ "vxpd",
+ "gs",
+ "sea_esop2",
+ "iep",
+ "ppa15",
+ "dfppc",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "ri",
+ "minste3",
+ "tsi",
+ "sema",
+ "minste2",
+ "eec",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "opc",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "edat",
+ "asnlxr",
+ "deflate",
+ "mepochptff",
+ "msa9_pckmo",
+ "msa9",
+ "msa8",
+ "msa7",
+ "msa6",
+ "msa2",
+ "msa1",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z14ZR1-base",
+ "typename": "z14ZR1-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "dfppc",
+ "tsi",
+ "sema",
+ "minste2",
+ "eec",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "opc",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z14.2-base",
+ "typename": "z14.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "dfppc",
+ "tsi",
+ "sema",
+ "minste2",
+ "eec",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "opc",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.3-base",
+ "typename": "z900.3-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z13.2-base",
+ "typename": "z13.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "dfppc",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "gen13ptff",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z196.2-base",
+ "typename": "z196.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zBC12-base",
+ "typename": "zBC12-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC.2-base",
+ "typename": "z9BC.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.2-base",
+ "typename": "z900.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.3",
+ "typename": "z9EC.3-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "msa1",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12",
+ "typename": "zEC12-s390x-cpu",
+ "unavailable-features": [
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "bpb",
+ "ppa15",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "ri",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z900",
+ "typename": "z900-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z114-base",
+ "typename": "z114-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12-base",
+ "typename": "zEC12-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.2",
+ "typename": "z10EC.2-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC-base",
+ "typename": "z10EC-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "asnlxr",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.3",
+ "typename": "z900.3-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z14ZR1",
+ "typename": "z14ZR1-s390x-cpu",
+ "unavailable-features": [
+ "ppno-sha-512-drng",
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "mepoch",
+ "vxeh",
+ "vxpd",
+ "gs",
+ "sea_esop2",
+ "iep",
+ "bpb",
+ "ppa15",
+ "dfppc",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "ri",
+ "tsi",
+ "sema",
+ "minste2",
+ "eec",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "opc",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "mepochptff",
+ "msa8",
+ "msa7",
+ "msa6",
+ "msa2",
+ "msa1",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC",
+ "typename": "z10BC-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC.2-base",
+ "typename": "z10BC.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "asnlxr",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC.2",
+ "typename": "z9BC.2-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "msa1",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.2",
+ "typename": "z990.2-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990",
+ "typename": "z990-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z14",
+ "typename": "z14-s390x-cpu",
+ "unavailable-features": [
+ "ppno-sha-512-drng",
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "mepoch",
+ "vxeh",
+ "vxpd",
+ "gs",
+ "sea_esop2",
+ "iep",
+ "bpb",
+ "ppa15",
+ "dfppc",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "ri",
+ "tsi",
+ "sema",
+ "minste2",
+ "eec",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "opc",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "mepochptff",
+ "msa8",
+ "msa7",
+ "msa6",
+ "msa2",
+ "msa1",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "gen15b-base",
+ "typename": "gen15b-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "dfppc",
+ "minste3",
+ "tsi",
+ "sema",
+ "minste2",
+ "eec",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "opc",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "asnlxr",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.4",
+ "typename": "z990.4-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "max",
+ "typename": "max-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": false
+ },
+ {
+ "name": "z10EC.2-base",
+ "typename": "z10EC.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "asnlxr",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "gen15a-base",
+ "typename": "gen15a-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "dfppc",
+ "minste3",
+ "tsi",
+ "sema",
+ "minste2",
+ "eec",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "opc",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "asnlxr",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z800",
+ "typename": "z800-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12.2",
+ "typename": "zEC12.2-s390x-cpu",
+ "unavailable-features": [
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "bpb",
+ "ppa15",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "ri",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC",
+ "typename": "z10EC-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.2-base",
+ "typename": "z990.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900-base",
+ "typename": "z900-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC.2",
+ "typename": "z10BC.2-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC-base",
+ "typename": "z9EC-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.3-base",
+ "typename": "z9EC.3-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z114",
+ "typename": "z114-s390x-cpu",
+ "unavailable-features": [
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "bpb",
+ "ppa15",
+ "aefsi",
+ "sthyi",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.3",
+ "typename": "z890.3-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z196-base",
+ "typename": "z196-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.2-base",
+ "typename": "z9EC.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z196.2",
+ "typename": "z196.2-s390x-cpu",
+ "unavailable-features": [
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "bpb",
+ "ppa15",
+ "aefsi",
+ "sthyi",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990-base",
+ "typename": "z990-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z14.2",
+ "typename": "z14.2-s390x-cpu",
+ "unavailable-features": [
+ "ppno-sha-512-drng",
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "mepoch",
+ "vxeh",
+ "vxpd",
+ "gs",
+ "sea_esop2",
+ "iep",
+ "bpb",
+ "ppa15",
+ "dfppc",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "ri",
+ "tsi",
+ "sema",
+ "minste2",
+ "eec",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "opc",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "mepochptff",
+ "msa8",
+ "msa7",
+ "msa6",
+ "msa2",
+ "msa1",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.2",
+ "typename": "z900.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z890-base",
+ "typename": "z890-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.3",
+ "typename": "z10EC.3-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z14-base",
+ "typename": "z14-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "dfppc",
+ "tsi",
+ "sema",
+ "minste2",
+ "eec",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "opc",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.4-base",
+ "typename": "z990.4-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.3-base",
+ "typename": "z10EC.3-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "asnlxr",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC-base",
+ "typename": "z10BC-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "asnlxr",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z13-base",
+ "typename": "z13-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "dfppc",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "gen13ptff",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.3-base",
+ "typename": "z990.3-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12.2-base",
+ "typename": "zEC12.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "tods"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zBC12",
+ "typename": "zBC12-s390x-cpu",
+ "unavailable-features": [
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "bpb",
+ "ppa15",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "ri",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.3-base",
+ "typename": "z890.3-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.5",
+ "typename": "z990.5-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "gen15b",
+ "typename": "gen15b-s390x-cpu",
+ "unavailable-features": [
+ "ppno-sha-512-drng",
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "etoken",
+ "vxpdeh",
+ "vxeh2",
+ "mepoch",
+ "vxeh",
+ "vxpd",
+ "gs",
+ "sea_esop2",
+ "iep",
+ "ppa15",
+ "dfppc",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "ri",
+ "minste3",
+ "tsi",
+ "sema",
+ "minste2",
+ "eec",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "opc",
+ "emon",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "edat",
+ "asnlxr",
+ "deflate",
+ "mepochptff",
+ "msa9_pckmo",
+ "msa9",
+ "msa8",
+ "msa7",
+ "msa6",
+ "msa2",
+ "msa1",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "qemu",
+ "typename": "qemu-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ }
+ ],
+ "id": "libvirt-2"
+}
+
+{
+ "execute": "query-cpu-model-expansion",
+ "arguments": {
+ "type": "static",
+ "model": {
+ "name": "max"
+ }
+ },
+ "id": "libvirt-3"
+}
+
+{
+ "return": {
+ "model": {
+ "name": "z13.2-base",
+ "props": {
+ "dateh2": false,
+ "aen": true,
+ "gen13ptff": false,
+ "kmac-tdea-192": false,
+ "kmc-tdea-192": false,
+ "parseh": false,
+ "csske": false,
+ "hfpm": false,
+ "hfpue": false,
+ "dfp": false,
+ "km-dea": false,
+ "vx": true,
+ "emon": false,
+ "kimd-sha-1": false,
+ "cmpsceh": false,
+ "dfppc": false,
+ "dfpzc": false,
+ "dfphp": false,
+ "kmc-dea": false,
+ "klmd-sha-1": false,
+ "asnlxr": false,
+ "km-tdea-192": false,
+ "km-tdea-128": false,
+ "kmac-dea": false,
+ "kmc-tdea-128": false,
+ "ais": true,
+ "kmac-tdea-128": false,
+ "zpci": true,
+ "nonqks": false,
+ "pfpo": false,
+ "msa4-base": true,
+ "msa3-base": true,
+ "msa5-base": true,
+ "tods": false
+ }
+ }
+ },
+ "id": "libvirt-3"
+}
+
+{
+ "execute": "query-cpu-model-expansion",
+ "arguments": {
+ "type": "static",
+ "model": {
+ "name": "max",
+ "props": {
+ "migratable": false
+ }
+ }
+ },
+ "id": "libvirt-4"
+}
+
+{
+ "id": "libvirt-4",
+ "error": {
+ "class": "GenericError",
+ "desc": "Property '.migratable' not found"
+ }
+}
diff --git a/tests/qemucapabilitiesdata/caps_4.1.0.s390x.xml b/tests/qemucapabilitiesdata/caps_4.1.0.s390x.xml
new file mode 100644
index 0000000000..5bfe8d5b05
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_4.1.0.s390x.xml
@@ -0,0 +1,3272 @@
+<qemuCaps>
+ <qemuctime>0</qemuctime>
+ <selfctime>0</selfctime>
+ <selfvers>0</selfvers>
+ <flag name='kvm'/>
+ <flag name='virtio-tx-alg'/>
+ <flag name='virtio-blk-pci.ioeventfd'/>
+ <flag name='virtio-blk-pci.event_idx'/>
+ <flag name='virtio-net-pci.event_idx'/>
+ <flag name='usb-redir'/>
+ <flag name='virtio-blk-pci.scsi'/>
+ <flag name='scsi-disk.channel'/>
+ <flag name='scsi-block'/>
+ <flag name='dump-guest-memory'/>
+ <flag name='virtio-scsi-pci'/>
+ <flag name='blockio'/>
+ <flag name='usb-redir.filter'/>
+ <flag name='scsi-disk.wwn'/>
+ <flag name='seccomp-sandbox'/>
+ <flag name='reboot-timeout'/>
+ <flag name='vnc'/>
+ <flag name='device-video-primary'/>
+ <flag name='s390-sclp'/>
+ <flag name='nbd-server'/>
+ <flag name='virtio-rng'/>
+ <flag name='rng-random'/>
+ <flag name='rng-egd'/>
+ <flag name='virtio-ccw'/>
+ <flag name='pci-bridge'/>
+ <flag name='vfio-pci'/>
+ <flag name='mem-merge'/>
+ <flag name='drive-discard'/>
+ <flag name='boot-strict'/>
+ <flag name='msg-timestamp'/>
+ <flag name='active-commit'/>
+ <flag name='change-backing-file'/>
+ <flag name='memory-backend-ram'/>
+ <flag name='numa'/>
+ <flag name='memory-backend-file'/>
+ <flag name='splash-timeout'/>
+ <flag name='iothread'/>
+ <flag name='migrate-rdma'/>
+ <flag name='drive-iotune-max'/>
+ <flag name='machine-vmport-opt'/>
+ <flag name='aes-key-wrap'/>
+ <flag name='dea-key-wrap'/>
+ <flag name='vhost-user-multiqueue'/>
+ <flag name='migration-event'/>
+ <flag name='virtio-net'/>
+ <flag name='gic-version'/>
+ <flag name='incoming-defer'/>
+ <flag name='virtio-gpu'/>
+ <flag name='virtio-gpu.virgl'/>
+ <flag name='virtio-keyboard'/>
+ <flag name='virtio-mouse'/>
+ <flag name='virtio-tablet'/>
+ <flag name='virtio-input-host'/>
+ <flag name='chardev-file-append'/>
+ <flag name='vserport-change-event'/>
+ <flag name='virtio-balloon-pci.deflate-on-oom'/>
+ <flag name='chardev-logfile'/>
+ <flag name='debug-threads'/>
+ <flag name='secret'/>
+ <flag name='virtio-scsi-pci.iothread'/>
+ <flag name='name-guest'/>
+ <flag name='drive-detect-zeroes'/>
+ <flag name='tls-creds-x509'/>
+ <flag name='smm'/>
+ <flag name='virtio-pci-disable-legacy'/>
+ <flag name='query-hotpluggable-cpus'/>
+ <flag name='virtio-net.rx_queue_size'/>
+ <flag name='drive-iotune-max-length'/>
+ <flag name='query-qmp-schema'/>
+ <flag name='gluster.debug_level'/>
+ <flag name='vhost-scsi'/>
+ <flag name='drive-iotune-group'/>
+ <flag name='query-cpu-model-expansion'/>
+ <flag name='virtio-net.host_mtu'/>
+ <flag name='query-cpu-definitions'/>
+ <flag name='block-write-threshold'/>
+ <flag name='query-named-block-nodes'/>
+ <flag name='kernel-irqchip'/>
+ <flag name='kernel-irqchip.split'/>
+ <flag name='virtio.iommu_platform'/>
+ <flag name='virtio.ats'/>
+ <flag name='loadparm'/>
+ <flag name='vnc-multi-servers'/>
+ <flag name='virtio-net.tx_queue_size'/>
+ <flag name='chardev-reconnect'/>
+ <flag name='virtio-gpu.max_outputs'/>
+ <flag name='vxhs'/>
+ <flag name='virtio-blk.num-queues'/>
+ <flag name='sclplmconsole'/>
+ <flag name='numa.dist'/>
+ <flag name='disk-share-rw'/>
+ <flag name='iscsi.password-secret'/>
+ <flag name='dump-completed'/>
+ <flag name='virtio-gpu-ccw'/>
+ <flag name='virtio-keyboard-ccw'/>
+ <flag name='virtio-mouse-ccw'/>
+ <flag name='virtio-tablet-ccw'/>
+ <flag name='qcow2-luks'/>
+ <flag name='seccomp-blacklist'/>
+ <flag name='query-cpus-fast'/>
+ <flag name='disk-write-cache'/>
+ <flag name='nbd-tls'/>
+ <flag name='pr-manager-helper'/>
+ <flag name='qom-list-properties'/>
+ <flag name='memory-backend-file.discard-data'/>
+ <flag name='virtual-css-bridge'/>
+ <flag name='virtual-css-bridge.cssid-unrestricted'/>
+ <flag name='vfio-ccw'/>
+ <flag name='sdl-gl'/>
+ <flag name='screendump_device'/>
+ <flag name='blockdev-del'/>
+ <flag name='vhost-vsock'/>
+ <flag name='chardev-fd-pass'/>
+ <flag name='egl-headless'/>
+ <flag name='vfio-pci.display'/>
+ <flag name='vfio-ap'/>
+ <flag name='zpci'/>
+ <flag name='memory-backend-memfd'/>
+ <flag name='memory-backend-memfd.hugetlb'/>
+ <flag name='iothread.poll-max-ns'/>
+ <flag name='egl-headless.rendernode'/>
+ <flag name='memory-backend-file.align'/>
+ <flag name='memory-backend-file.pmem'/>
+ <flag name='scsi-disk.device_id'/>
+ <flag name='virtio-pci-non-transitional'/>
+ <flag name='overcommit'/>
+ <flag name='query-current-machine'/>
+ <flag name='bitmap-merge'/>
+ <flag name='nbd-bitmap'/>
+ <flag name='migration-file-drop-cache'/>
+ <flag name='vhost-user-gpu'/>
+ <flag name='query-cpu-model-baseline'/>
+ <flag name='query-cpu-model-comparison'/>
+ <version>4001000</version>
+ <kvmVersion>0</kvmVersion>
+ <microcodeVersion>39100759</microcodeVersion>
+ <package>v4.1.0</package>
+ <arch>s390x</arch>
+ <hostCPU type='kvm' model='gen15a-base' migratability='no'>
+ <property name='aen' type='boolean' value='true'/>
+ <property name='cmmnt' type='boolean' value='true'/>
+ <property name='vxpdeh' type='boolean' value='true'/>
+ <property name='aefsi' type='boolean' value='true'/>
+ <property name='csske' type='boolean' value='true'/>
+ <property name='mepoch' type='boolean' value='true'/>
+ <property name='msa9' type='boolean' value='true'/>
+ <property name='msa8' type='boolean' value='true'/>
+ <property name='msa7' type='boolean' value='true'/>
+ <property name='msa6' type='boolean' value='true'/>
+ <property name='msa5' type='boolean' value='true'/>
+ <property name='msa4' type='boolean' value='true'/>
+ <property name='msa3' type='boolean' value='true'/>
+ <property name='msa2' type='boolean' value='true'/>
+ <property name='msa1' type='boolean' value='true'/>
+ <property name='sthyi' type='boolean' value='true'/>
+ <property name='edat' type='boolean' value='true'/>
+ <property name='ri' type='boolean' value='true'/>
+ <property name='deflate' type='boolean' value='true'/>
+ <property name='edat2' type='boolean' value='true'/>
+ <property name='etoken' type='boolean' value='true'/>
+ <property name='vx' type='boolean' value='true'/>
+ <property name='ipter' type='boolean' value='true'/>
+ <property name='mepochptff' type='boolean' value='true'/>
+ <property name='ap' type='boolean' value='true'/>
+ <property name='vxeh' type='boolean' value='true'/>
+ <property name='vxpd' type='boolean' value='true'/>
+ <property name='esop' type='boolean' value='true'/>
+ <property name='msa9_pckmo' type='boolean' value='true'/>
+ <property name='vxeh2' type='boolean' value='true'/>
+ <property name='esort' type='boolean' value='true'/>
+ <property name='apqi' type='boolean' value='true'/>
+ <property name='apft' type='boolean' value='true'/>
+ <property name='iep' type='boolean' value='true'/>
+ <property name='apqci' type='boolean' value='true'/>
+ <property name='cte' type='boolean' value='true'/>
+ <property name='bpb' type='boolean' value='true'/>
+ <property name='gs' type='boolean' value='true'/>
+ <property name='ppa15' type='boolean' value='true'/>
+ <property name='zpci' type='boolean' value='true'/>
+ <property name='sea_esop2' type='boolean' value='true'/>
+ <property name='te' type='boolean' value='true'/>
+ <property name='cmm' type='boolean' value='true'/>
+ </hostCPU>
+ <hostCPU type='tcg' model='z13.2-base' migratability='no'>
+ <property name='dateh2' type='boolean' value='false'/>
+ <property name='aen' type='boolean' value='true'/>
+ <property name='gen13ptff' type='boolean' value='false'/>
+ <property name='kmac-tdea-192' type='boolean' value='false'/>
+ <property name='kmc-tdea-192' type='boolean' value='false'/>
+ <property name='parseh' type='boolean' value='false'/>
+ <property name='csske' type='boolean' value='false'/>
+ <property name='hfpm' type='boolean' value='false'/>
+ <property name='hfpue' type='boolean' value='false'/>
+ <property name='dfp' type='boolean' value='false'/>
+ <property name='km-dea' type='boolean' value='false'/>
+ <property name='vx' type='boolean' value='true'/>
+ <property name='emon' type='boolean' value='false'/>
+ <property name='kimd-sha-1' type='boolean' value='false'/>
+ <property name='cmpsceh' type='boolean' value='false'/>
+ <property name='dfppc' type='boolean' value='false'/>
+ <property name='dfpzc' type='boolean' value='false'/>
+ <property name='dfphp' type='boolean' value='false'/>
+ <property name='kmc-dea' type='boolean' value='false'/>
+ <property name='klmd-sha-1' type='boolean' value='false'/>
+ <property name='asnlxr' type='boolean' value='false'/>
+ <property name='km-tdea-192' type='boolean' value='false'/>
+ <property name='km-tdea-128' type='boolean' value='false'/>
+ <property name='kmac-dea' type='boolean' value='false'/>
+ <property name='kmc-tdea-128' type='boolean' value='false'/>
+ <property name='ais' type='boolean' value='true'/>
+ <property name='kmac-tdea-128' type='boolean' value='false'/>
+ <property name='zpci' type='boolean' value='true'/>
+ <property name='nonqks' type='boolean' value='false'/>
+ <property name='pfpo' type='boolean' value='false'/>
+ <property name='msa4-base' type='boolean' value='true'/>
+ <property name='msa3-base' type='boolean' value='true'/>
+ <property name='msa5-base' type='boolean' value='true'/>
+ <property name='tods' type='boolean' value='false'/>
+ </hostCPU>
+ <cpu type='kvm' name='z800-base' usable='yes'/>
+ <cpu type='kvm' name='z890.2-base' usable='yes'/>
+ <cpu type='kvm' name='z9EC.2' usable='yes'/>
+ <cpu type='kvm' name='z13.2' usable='yes'/>
+ <cpu type='kvm' name='z9BC-base' usable='yes'/>
+ <cpu type='kvm' name='z990.5-base' usable='yes'/>
+ <cpu type='kvm' name='z890.2' usable='yes'/>
+ <cpu type='kvm' name='z890' usable='yes'/>
+ <cpu type='kvm' name='z9BC' usable='yes'/>
+ <cpu type='kvm' name='z13' usable='yes'/>
+ <cpu type='kvm' name='z196' usable='yes'/>
+ <cpu type='kvm' name='z13s' usable='yes'/>
+ <cpu type='kvm' name='host' usable='yes'/>
+ <cpu type='kvm' name='z990.3' usable='yes'/>
+ <cpu type='kvm' name='z13s-base' usable='yes'/>
+ <cpu type='kvm' name='z9EC' usable='yes'/>
+ <cpu type='kvm' name='gen15a' usable='yes'/>
+ <cpu type='kvm' name='z14ZR1-base' usable='yes'/>
+ <cpu type='kvm' name='z14.2-base' usable='yes'/>
+ <cpu type='kvm' name='z900.3-base' usable='yes'/>
+ <cpu type='kvm' name='z13.2-base' usable='yes'/>
+ <cpu type='kvm' name='z196.2-base' usable='yes'/>
+ <cpu type='kvm' name='zBC12-base' usable='yes'/>
+ <cpu type='kvm' name='z9BC.2-base' usable='yes'/>
+ <cpu type='kvm' name='z900.2-base' usable='yes'/>
+ <cpu type='kvm' name='z9EC.3' usable='yes'/>
+ <cpu type='kvm' name='zEC12' usable='yes'/>
+ <cpu type='kvm' name='z900' usable='yes'/>
+ <cpu type='kvm' name='z114-base' usable='yes'/>
+ <cpu type='kvm' name='zEC12-base' usable='yes'/>
+ <cpu type='kvm' name='z10EC.2' usable='yes'/>
+ <cpu type='kvm' name='z10EC-base' usable='yes'/>
+ <cpu type='kvm' name='z900.3' usable='yes'/>
+ <cpu type='kvm' name='z14ZR1' usable='yes'/>
+ <cpu type='kvm' name='z10BC' usable='yes'/>
+ <cpu type='kvm' name='z10BC.2-base' usable='yes'/>
+ <cpu type='kvm' name='z9BC.2' usable='yes'/>
+ <cpu type='kvm' name='z990.2' usable='yes'/>
+ <cpu type='kvm' name='z990' usable='yes'/>
+ <cpu type='kvm' name='z14' usable='yes'/>
+ <cpu type='kvm' name='gen15b-base' usable='yes'/>
+ <cpu type='kvm' name='z990.4' usable='yes'/>
+ <cpu type='kvm' name='max' usable='yes'/>
+ <cpu type='kvm' name='z10EC.2-base' usable='yes'/>
+ <cpu type='kvm' name='gen15a-base' usable='yes'/>
+ <cpu type='kvm' name='z800' usable='yes'/>
+ <cpu type='kvm' name='zEC12.2' usable='yes'/>
+ <cpu type='kvm' name='z10EC' usable='yes'/>
+ <cpu type='kvm' name='z990.2-base' usable='yes'/>
+ <cpu type='kvm' name='z900-base' usable='yes'/>
+ <cpu type='kvm' name='z10BC.2' usable='yes'/>
+ <cpu type='kvm' name='z9EC-base' usable='yes'/>
+ <cpu type='kvm' name='z9EC.3-base' usable='yes'/>
+ <cpu type='kvm' name='z114' usable='yes'/>
+ <cpu type='kvm' name='z890.3' usable='yes'/>
+ <cpu type='kvm' name='z196-base' usable='yes'/>
+ <cpu type='kvm' name='z9EC.2-base' usable='yes'/>
+ <cpu type='kvm' name='z196.2' usable='yes'/>
+ <cpu type='kvm' name='z990-base' usable='yes'/>
+ <cpu type='kvm' name='z14.2' usable='yes'/>
+ <cpu type='kvm' name='z900.2' usable='yes'/>
+ <cpu type='kvm' name='z890-base' usable='yes'/>
+ <cpu type='kvm' name='z10EC.3' usable='yes'/>
+ <cpu type='kvm' name='z14-base' usable='yes'/>
+ <cpu type='kvm' name='z990.4-base' usable='yes'/>
+ <cpu type='kvm' name='z10EC.3-base' usable='yes'/>
+ <cpu type='kvm' name='z10BC-base' usable='yes'/>
+ <cpu type='kvm' name='z13-base' usable='yes'/>
+ <cpu type='kvm' name='z990.3-base' usable='yes'/>
+ <cpu type='kvm' name='zEC12.2-base' usable='yes'/>
+ <cpu type='kvm' name='zBC12' usable='yes'/>
+ <cpu type='kvm' name='z890.3-base' usable='yes'/>
+ <cpu type='kvm' name='z990.5' usable='yes'/>
+ <cpu type='kvm' name='gen15b' usable='yes'/>
+ <cpu type='kvm' name='qemu' usable='no'>
+ <blocker name='ais'/>
+ </cpu>
+ <cpu type='tcg' name='z800-base' usable='yes'/>
+ <cpu type='tcg' name='z890.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z9EC.2' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z13.2' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z9BC-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z990.5-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z890.2' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z890' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z9BC' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z13' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z196' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z13s' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='host' usable='yes'/>
+ <cpu type='tcg' name='z990.3' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z13s-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z9EC' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='gen15a' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='etoken'/>
+ <blocker name='vxpdeh'/>
+ <blocker name='vxeh2'/>
+ <blocker name='mepoch'/>
+ <blocker name='vxeh'/>
+ <blocker name='vxpd'/>
+ <blocker name='gs'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='iep'/>
+ <blocker name='ppa15'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='minste3'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='deflate'/>
+ <blocker name='mepochptff'/>
+ <blocker name='msa9_pckmo'/>
+ <blocker name='msa9'/>
+ <blocker name='msa8'/>
+ <blocker name='msa7'/>
+ <blocker name='msa6'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z14ZR1-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z14.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z900.3-base' usable='yes'/>
+ <cpu type='tcg' name='z13.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z196.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='zBC12-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z9BC.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z900.2-base' usable='yes'/>
+ <cpu type='tcg' name='z9EC.3' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='zEC12' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z900' usable='yes'/>
+ <cpu type='tcg' name='z114-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='zEC12-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z10EC.2' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z10EC-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z900.3' usable='yes'/>
+ <cpu type='tcg' name='z14ZR1' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='mepoch'/>
+ <blocker name='vxeh'/>
+ <blocker name='vxpd'/>
+ <blocker name='gs'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='iep'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='mepochptff'/>
+ <blocker name='msa8'/>
+ <blocker name='msa7'/>
+ <blocker name='msa6'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z10BC' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z10BC.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z9BC.2' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z990.2' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z990' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z14' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='mepoch'/>
+ <blocker name='vxeh'/>
+ <blocker name='vxpd'/>
+ <blocker name='gs'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='iep'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='mepochptff'/>
+ <blocker name='msa8'/>
+ <blocker name='msa7'/>
+ <blocker name='msa6'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='gen15b-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='minste3'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z990.4' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='max' usable='yes'/>
+ <cpu type='tcg' name='z10EC.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='gen15a-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='minste3'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z800' usable='yes'/>
+ <cpu type='tcg' name='zEC12.2' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z10EC' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z990.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z900-base' usable='yes'/>
+ <cpu type='tcg' name='z10BC.2' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z9EC-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z9EC.3-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z114' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z890.3' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z196-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z9EC.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z196.2' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z990-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z14.2' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='mepoch'/>
+ <blocker name='vxeh'/>
+ <blocker name='vxpd'/>
+ <blocker name='gs'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='iep'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='mepochptff'/>
+ <blocker name='msa8'/>
+ <blocker name='msa7'/>
+ <blocker name='msa6'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z900.2' usable='yes'/>
+ <cpu type='tcg' name='z890-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z10EC.3' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z14-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z990.4-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z10EC.3-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z10BC-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z13-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z990.3-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='zEC12.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='zBC12' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z890.3-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z990.5' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='gen15b' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='etoken'/>
+ <blocker name='vxpdeh'/>
+ <blocker name='vxeh2'/>
+ <blocker name='mepoch'/>
+ <blocker name='vxeh'/>
+ <blocker name='vxpd'/>
+ <blocker name='gs'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='iep'/>
+ <blocker name='ppa15'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='minste3'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='deflate'/>
+ <blocker name='mepochptff'/>
+ <blocker name='msa9_pckmo'/>
+ <blocker name='msa9'/>
+ <blocker name='msa8'/>
+ <blocker name='msa7'/>
+ <blocker name='msa6'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='qemu' usable='yes'/>
+ <machine name='s390-ccw-virtio-4.1' alias='s390-ccw-virtio' hotplugCpus='yes' maxCpus='248' default='yes'/>
+ <machine name='s390-ccw-virtio-4.0' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-3.1' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.6' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.12' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.9' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-3.0' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.5' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.11' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.8' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.4' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.10' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.7' hotplugCpus='yes' maxCpus='248'/>
+</qemuCaps>
--
2.21.0
5
7
[libvirt] [PATCH] qemu: avoid double reservation of PCI address when hotplugging interface type='hostdev'
by Laine Stump 23 Oct '19
by Laine Stump 23 Oct '19
23 Oct '19
Commit 01ca4010d86 (libvirt v5.1.0) moved address reservation for
hotplugged interface devices up to an earlier point in
qemuDomainAttachNetDevice() because some function called when
hotplugging on aarch64 needed to know the address type, and failed
when it was "none".
This unfortunately caused a regression, because it also made PCI
address reservation happen before we noticed that the device was a
*hostdev* interface. Those interfaces are hotplugged by just calling
out to qemuDomainAttachHostdevDevice() - that function would then also
attempt to reserve the *same PCI address* that had just been reserved
in qemuDomainAttachNetDevice().
The solution is to move the bit of code that short-circuits out to
virDomainHostdevAttach() up *even earlier* so that no PCI address has
been allocated by the time it's called.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1744523
Signed-off-by: Laine Stump <laine(a)redhat.com>
---
src/qemu/qemu_hotplug.c | 26 +++++++++++++++-----------
1 file changed, 15 insertions(+), 11 deletions(-)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 55696ebe9a..80ddee6587 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1181,6 +1181,17 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
if (qemuAssignDeviceNetAlias(vm->def, net, -1) < 0)
goto cleanup;
+ if (actualType == VIR_DOMAIN_NET_TYPE_HOSTDEV) {
+ /* This is really a "smart hostdev", so it should be attached
+ * as a hostdev (the hostdev code will reach over into the
+ * netdev-specific code as appropriate), then also added to
+ * the nets list (see cleanup:) if successful.
+ */
+ ret = qemuDomainAttachHostDevice(driver, vm,
+ virDomainNetGetActualHostdev(net));
+ goto cleanup;
+ }
+
if (qemuDomainIsS390CCW(vm->def) &&
net->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI &&
virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_CCW)) {
@@ -1260,17 +1271,6 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
goto cleanup;
break;
- case VIR_DOMAIN_NET_TYPE_HOSTDEV:
- /* This is really a "smart hostdev", so it should be attached
- * as a hostdev (the hostdev code will reach over into the
- * netdev-specific code as appropriate), then also added to
- * the nets list (see cleanup:) if successful.
- */
- ret = qemuDomainAttachHostDevice(driver, vm,
- virDomainNetGetActualHostdev(net));
- goto cleanup;
- break;
-
case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
queueSize = net->driver.virtio.queues;
if (!queueSize)
@@ -1313,6 +1313,10 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
}
break;
+ case VIR_DOMAIN_NET_TYPE_HOSTDEV:
+ /* this switch is skipped by hostdev interfaces */
+ break;
+
case VIR_DOMAIN_NET_TYPE_SERVER:
case VIR_DOMAIN_NET_TYPE_CLIENT:
case VIR_DOMAIN_NET_TYPE_MCAST:
--
2.21.0
2
3
I'm going to add a new event soon so let's refactor the code I'll copy
it from.
Peter Krempa (4):
remote: dispatch: Remove return value from make_nonnull_* helpers
remote: Replace VIR_ALLOC_N with g_new0 in
remoteRelayDomainEventGraphics
remote: Use g_new0 to allocate 'remote_string' in event RPC handlers
remote: Serialize typed parameters earlier
src/admin/admin_server_dispatch.c | 6 +-
src/remote/remote_daemon_dispatch.c | 381 ++++++----------------------
src/rpc/gendispatch.pl | 19 +-
3 files changed, 88 insertions(+), 318 deletions(-)
--
2.21.0
2
8
[libvirt] [PATCH 00/16] docs: hacking: various modernizations (glib chronicles)
by Ján Tomko 22 Oct '19
by Ján Tomko 22 Oct '19
22 Oct '19
Contemporize the file.
Ján Tomko (16):
docs: hacking: remove note about rename detection
docs: hacking: mention git-publish prominently
docs: hacking: emphasize some sections
docs: hacking: remove notes about -Werror
docs: hacking: demonstrate the powers of VIR_TEST_RANGE
docs: hacking: extend the table of removed libvirt macros
docs: hacking: mention compiler annotations
docs: hacking: mention GLib alternatives of libvirt allocation macros
docs: hacking: mention GLib alternatives of libvirt string allocation
macros
docs: hacking: document preferred strdup alternatives
docs: hacking: document string concatenations
docs: hacking: remove reference to ATTRIBUTE_FORMAT
docs: hacking: extend goto documentation
docs: hacking: amend label indenting rules
docs: hacking: amend push-without-review rules
docs: hacking: fix typo
docs/hacking.html.in | 169 +++++++++++++++++++++++++++++--------------
1 file changed, 114 insertions(+), 55 deletions(-)
--
2.21.0
4
38
22 Oct '19
Technically, this is a v2 of:
https://www.redhat.com/archives/libvir-list/2019-August/msg01273.html
but a different approach is implemented here. The limitation for
lsilogic, buslogic, spapr-vscsi and vmpvscsi comes from this document:
https://docs.vmware.com/en/VMware-vSphere/6.7/com.vmware.vsphere.vm_admin.d…
Michal PrÃvoznÃk (2):
domain_conf: Make virDomainDeviceFindSCSIController accept
virDomainDeviceDriveAddress struct
domain_conf: Relax SCSI addr used check
src/conf/domain_conf.c | 59 +++++++++++++++++++++++++++++-----
src/conf/domain_conf.h | 2 +-
src/qemu/qemu_domain_address.c | 2 +-
src/vbox/vbox_common.c | 2 +-
4 files changed, 54 insertions(+), 11 deletions(-)
--
2.21.0
2
6
[libvirt] [PATCH] conf: remove NULL check from virDomainQemuMonitorEventNew
by Ján Tomko 22 Oct '19
by Ján Tomko 22 Oct '19
22 Oct '19
The qemu_domain_monitor_event_msg struct in qemu_protocol.x
defines event as a nonnull_string and qemuMonitorJSONIOProcessEvent
also errors out on a non-NULL event.
Drop the check to fix the build with static analysis.
Signed-off-by: Ján Tomko <jtomko(a)redhat.com>
---
src/conf/domain_event.c | 8 --------
1 file changed, 8 deletions(-)
diff --git a/src/conf/domain_event.c b/src/conf/domain_event.c
index 644f6eb595..33fbf10406 100644
--- a/src/conf/domain_event.c
+++ b/src/conf/domain_event.c
@@ -1934,20 +1934,12 @@ virDomainQemuMonitorEventNew(int id,
0, id, name, uuid, uuidstr)))
return NULL;
- /* event is mandatory, details are optional */
- if (!event)
- goto error;
-
ev->event = g_strdup(event);
ev->seconds = seconds;
ev->micros = micros;
ev->details = g_strdup(details);
return (virObjectEventPtr)ev;
-
- error:
- virObjectUnref(ev);
- return NULL;
}
--
2.19.2
2
1
[libvirt] [PATCH 00/34] Use g_strdup instead of VIR_STRDUP (glib chronicles)
by Ján Tomko 22 Oct '19
by Ján Tomko 22 Oct '19
22 Oct '19
Note that VIR_STRDUP is still defined at the end of this series,
due to sharing a test with VIR_STRNDUP.
Removing VIR_STRNDUP will require some extra care, since GLib's
g_strndup does not accept a length of -1 as an alias for acting
like g_strdup.
Ján Tomko (34):
scripts: introduce a macro file for coccinelle
util: fix check for iscsi initiator copy
conf: use g_strdup in virDomainDiskSet
Use g_strdup instead of ignoring VIR_STRDUP's value
Use g_strdup instead of ignoring VIR_STRDUP_QUIET's value
drivers: use g_strdup in probe functions
Use g_strdup where VIR_STRDUP's return value was propagated
Use g_strdup to fill in default values
bhyve: use g_strdup instead of VIR_STRDUP
conf: use g_strdup instead of VIR_STRDUP
cpu: use g_strdup instead of VIR_STRDUP
datatypes: use g_strdup instead of VIR_STRDUP
esx: use g_strdup instead of VIR_STRDUP
interface: use g_strdup instead of VIR_STRDUP
libxl: use g_strdup instead of VIR_STRDUP
locking: use g_strdup instead of VIR_STRDUP
logging: use g_strdup instead of VIR_STRDUP
lxc: use g_strdup instead of VIR_STRDUP
network: use g_strdup instead of VIR_STRDUP
node_device: use g_strdup instead of VIR_STRDUP
nwfilter: use g_strdup instead of VIR_STRDUP
qemu: use g_strdup instead of VIR_STRDUP
remote: use g_strdup instead of VIR_STRDUP
rpc: use g_strdup instead of VIR_STRDUP
security: use g_strdup instead of VIR_STRDUP
storage: use g_strdup instead of VIR_STRDUP
test: use g_strdup instead of VIR_STRDUP
virstorage: use g_strdup instead of VIR_STRDUP
vircgroup: use g_strdup instead of VIR_STRDUP
util: use g_strdup instead of VIR_STRDUP
vbox: use g_strdup instead of VIR_STRDUP
tests: use g_strdup instead of VIR_STRDUP
tools: use g_strdup instead of VIR_STRDUP
Use g_strdup instead of VIR_STRDUP everywhere
scripts/cocci-macro-file.h | 39 ++++
src/admin/admin_server_dispatch.c | 3 +-
src/bhyve/bhyve_command.c | 15 +-
src/bhyve/bhyve_conf.c | 3 +-
src/bhyve/bhyve_driver.c | 6 +-
src/bhyve/bhyve_parse_command.c | 35 +---
src/conf/capabilities.c | 33 ++-
src/conf/checkpoint_conf.c | 9 +-
src/conf/cpu_conf.c | 15 +-
src/conf/domain_audit.c | 15 +-
src/conf/domain_capabilities.c | 8 +-
src/conf/domain_conf.c | 173 ++++++----------
src/conf/domain_event.c | 103 +++-------
src/conf/domain_nwfilter.c | 14 +-
src/conf/networkcommon_conf.c | 3 +-
src/conf/node_device_conf.c | 14 +-
src/conf/node_device_util.c | 5 +-
src/conf/nwfilter_conf.c | 4 +-
src/conf/nwfilter_ipaddrmap.c | 3 +-
src/conf/nwfilter_params.c | 12 +-
src/conf/object_event.c | 10 +-
src/conf/snapshot_conf.c | 9 +-
src/conf/storage_conf.c | 17 +-
src/conf/virchrdev.c | 6 +-
src/conf/virdomainmomentobjlist.c | 7 +-
src/conf/virdomainobjlist.c | 10 +-
src/conf/virinterfaceobj.c | 11 +-
src/conf/virnetworkobj.c | 7 +-
src/conf/virnodedeviceobj.c | 10 +-
src/conf/virnwfilterbindingdef.c | 12 +-
src/conf/virnwfilterobj.c | 11 +-
src/conf/virstorageobj.c | 28 +--
src/cpu/cpu_arm.c | 5 +-
src/cpu/cpu_ppc64.c | 31 ++-
src/cpu/cpu_x86.c | 45 ++---
src/datatypes.c | 45 ++---
src/esx/esx_driver.c | 37 +---
src/esx/esx_interface_driver.c | 15 +-
src/esx/esx_network_driver.c | 33 +--
src/esx/esx_storage_backend_iscsi.c | 11 +-
src/esx/esx_storage_backend_vmfs.c | 15 +-
src/esx/esx_util.c | 38 ++--
src/esx/esx_vi.c | 82 ++++----
src/esx/esx_vi_types.c | 23 +--
src/hyperv/hyperv_driver.c | 17 +-
src/hyperv/hyperv_util.c | 8 +-
src/interface/interface_backend_netcf.c | 11 +-
src/interface/interface_backend_udev.c | 30 +--
src/libvirt-admin.c | 18 +-
src/libvirt.c | 16 +-
src/libxl/libxl_capabilities.c | 4 +-
src/libxl/libxl_conf.c | 185 ++++++-----------
src/libxl/libxl_domain.c | 15 +-
src/libxl/libxl_driver.c | 23 +--
src/libxl/libxl_migration.c | 8 +-
src/libxl/xen_common.c | 62 ++----
src/libxl/xen_xl.c | 30 +--
src/libxl/xen_xm.c | 3 +-
src/locking/lock_daemon.c | 24 +--
src/locking/lock_daemon_config.c | 3 +-
src/locking/lock_daemon_dispatch.c | 3 +-
src/locking/lock_driver_lockd.c | 24 +--
src/locking/lock_driver_sanlock.c | 14 +-
src/locking/lock_manager.c | 3 +-
src/logging/log_daemon.c | 21 +-
src/logging/log_daemon_config.c | 3 +-
src/logging/log_handler.c | 11 +-
src/logging/log_manager.c | 3 +-
src/lxc/lxc_conf.c | 21 +-
src/lxc/lxc_container.c | 20 +-
src/lxc/lxc_controller.c | 12 +-
src/lxc/lxc_driver.c | 10 +-
src/lxc/lxc_native.c | 63 +++---
src/lxc/lxc_process.c | 13 +-
src/network/bridge_driver.c | 51 ++---
src/network/leaseshelper.c | 6 +-
src/node_device/node_device_driver.c | 32 +--
src/node_device/node_device_hal.c | 8 +-
src/node_device/node_device_udev.c | 75 +++----
src/nwfilter/nwfilter_dhcpsnoop.c | 5 +-
src/nwfilter/nwfilter_driver.c | 9 +-
src/openvz/openvz_conf.c | 16 +-
src/openvz/openvz_driver.c | 19 +-
src/phyp/phyp_driver.c | 25 +--
src/qemu/qemu_agent.c | 51 ++---
src/qemu/qemu_alias.c | 32 +--
src/qemu/qemu_block.c | 48 ++---
src/qemu/qemu_blockjob.c | 9 +-
src/qemu/qemu_capabilities.c | 90 ++++-----
src/qemu/qemu_cgroup.c | 5 +-
src/qemu/qemu_checkpoint.c | 12 +-
src/qemu/qemu_command.c | 15 +-
src/qemu/qemu_conf.c | 55 ++---
src/qemu/qemu_dbus.c | 7 +-
src/qemu/qemu_domain.c | 59 +++---
src/qemu/qemu_driver.c | 80 +++-----
src/qemu/qemu_firmware.c | 44 ++--
src/qemu/qemu_hotplug.c | 23 +--
src/qemu/qemu_interface.c | 6 +-
src/qemu/qemu_interop_config.c | 6 +-
src/qemu/qemu_migration.c | 28 +--
src/qemu/qemu_migration_cookie.c | 21 +-
src/qemu/qemu_migration_params.c | 10 +-
src/qemu/qemu_monitor.c | 14 +-
src/qemu/qemu_monitor_json.c | 125 +++++-------
src/qemu/qemu_process.c | 71 +++----
src/qemu/qemu_vhost_user.c | 6 +-
src/remote/remote_daemon.c | 15 +-
src/remote/remote_daemon_config.c | 24 +--
src/remote/remote_daemon_dispatch.c | 222 ++++++++-------------
src/remote/remote_driver.c | 110 ++++------
src/rpc/gendispatch.pl | 20 +-
src/rpc/virnetclient.c | 15 +-
src/rpc/virnetlibsshsession.c | 19 +-
src/rpc/virnetmessage.c | 26 +--
src/rpc/virnetsaslcontext.c | 2 +-
src/rpc/virnetserver.c | 3 +-
src/rpc/virnetserverclient.c | 3 +-
src/rpc/virnetsocket.c | 9 +-
src/rpc/virnetsshsession.c | 30 +--
src/rpc/virnettlscontext.c | 21 +-
src/security/security_apparmor.c | 12 +-
src/security/security_dac.c | 10 +-
src/security/security_nop.c | 2 +-
src/security/security_selinux.c | 48 ++---
src/security/virt-aa-helper.c | 15 +-
src/storage/parthelper.c | 3 +-
src/storage/storage_backend_disk.c | 19 +-
src/storage/storage_backend_fs.c | 5 +-
src/storage/storage_backend_gluster.c | 15 +-
src/storage/storage_backend_iscsi_direct.c | 3 +-
src/storage/storage_backend_logical.c | 12 +-
src/storage/storage_backend_mpath.c | 3 +-
src/storage/storage_backend_rbd.c | 3 +-
src/storage/storage_backend_scsi.c | 2 +-
src/storage/storage_backend_sheepdog.c | 9 +-
src/storage/storage_backend_zfs.c | 10 +-
src/storage/storage_driver.c | 23 +--
src/storage/storage_util.c | 39 ++--
src/test/test_driver.c | 133 +++++-------
src/util/virarptable.c | 6 +-
src/util/virauth.c | 12 +-
src/util/virauthconfig.c | 6 +-
src/util/virbitmap.c | 2 +-
src/util/vircgroup.c | 15 +-
src/util/vircgroupv1.c | 41 ++--
src/util/vircgroupv2.c | 9 +-
src/util/vircommand.c | 44 +---
src/util/virconf.c | 30 +--
src/util/virdbus.c | 9 +-
src/util/virdnsmasq.c | 13 +-
src/util/virerror.c | 23 +--
src/util/virfcp.c | 3 +-
src/util/virfdstream.c | 10 +-
src/util/virfile.c | 52 ++---
src/util/virfilecache.c | 6 +-
src/util/virfirewall.c | 3 +-
src/util/virfirmware.c | 10 +-
src/util/virhash.c | 2 +-
src/util/virhostdev.c | 3 +-
src/util/virhostmem.c | 3 +-
src/util/viriscsi.c | 12 +-
src/util/virjson.c | 13 +-
src/util/virlease.c | 11 +-
src/util/virlockspace.c | 21 +-
src/util/virlog.c | 11 +-
src/util/virmdev.c | 9 +-
src/util/virnetdev.c | 2 +-
src/util/virnetdevmacvlan.c | 12 +-
src/util/virnetdevopenvswitch.c | 3 +-
src/util/virnetdevtap.c | 6 +-
src/util/virnetdevvportprofile.c | 5 +-
src/util/virnuma.c | 3 +-
src/util/virobject.c | 3 +-
src/util/virpci.c | 32 +--
src/util/virportallocator.c | 8 +-
src/util/virresctrl.c | 9 +-
src/util/virrotatingfile.c | 9 +-
src/util/virscsi.c | 9 +-
src/util/virscsihost.c | 2 +-
src/util/virscsivhost.c | 13 +-
src/util/virseclabel.c | 19 +-
src/util/virsecret.c | 3 +-
src/util/virsocketaddr.c | 6 +-
src/util/virstorageencryption.c | 11 +-
src/util/virstoragefile.c | 197 +++++++-----------
src/util/virstring.c | 16 +-
src/util/virsysinfo.c | 6 +-
src/util/virsystemd.c | 3 +-
src/util/virtpm.c | 8 +-
src/util/virtypedparam-public.c | 6 +-
src/util/virtypedparam.c | 28 +--
src/util/viruri.c | 25 +--
src/util/virusb.c | 6 +-
src/util/virutil.c | 35 ++--
src/util/virvhba.c | 8 +-
src/util/virxml.c | 7 +-
src/vbox/vbox_XPCOMCGlue.c | 3 +-
src/vbox/vbox_common.c | 152 ++++----------
src/vbox/vbox_network.c | 45 ++---
src/vbox/vbox_snapshot_conf.c | 15 +-
src/vbox/vbox_storage.c | 17 +-
src/vmware/vmware_conf.c | 13 +-
src/vmware/vmware_driver.c | 8 +-
src/vmx/vmx.c | 20 +-
src/vz/vz_driver.c | 5 +-
src/vz/vz_sdk.c | 29 +--
tests/bhyvexml2argvmock.c | 6 +-
tests/commandtest.c | 5 +-
tests/cputest.c | 4 +-
tests/domaincapstest.c | 19 +-
tests/networkxml2firewalltest.c | 4 +-
tests/nssmock.c | 3 +-
tests/openvzutilstest.c | 5 +-
tests/qemublocktest.c | 3 +-
tests/qemudomaincheckpointxml2xmltest.c | 9 +-
tests/qemufirmwaretest.c | 3 +-
tests/qemuhotplugtest.c | 8 +-
tests/qemumemlocktest.c | 5 +-
tests/qemumonitorjsontest.c | 3 +-
tests/qemumonitortestutils.c | 32 ++-
tests/qemusecuritymock.c | 6 +-
tests/qemuvhostusertest.c | 3 +-
tests/qemuxml2argvmock.c | 12 +-
tests/qemuxml2argvtest.c | 59 ++----
tests/qemuxml2xmltest.c | 5 +-
tests/scsihosttest.c | 5 +-
tests/securityselinuxhelper.c | 6 +-
tests/securityselinuxlabeltest.c | 8 +-
tests/securityselinuxtest.c | 13 +-
tests/storagebackendsheepdogtest.c | 6 +-
tests/testutils.c | 5 +-
tests/testutilsqemu.c | 31 +--
tests/vboxsnapshotxmltest.c | 4 +-
tests/viralloctest.c | 3 +-
tests/vircgrouptest.c | 5 +-
tests/virfilecachetest.c | 7 +-
tests/virfilemock.c | 2 +-
tests/virfirewalltest.c | 8 +-
tests/virhostdevtest.c | 8 +-
tests/viriscsitest.c | 12 +-
tests/virnetmessagetest.c | 11 +-
tests/virpcimock.c | 19 +-
tests/virpcitest.c | 5 +-
tests/virscsitest.c | 5 +-
tests/virstoragetest.c | 6 +-
tests/virstringtest.c | 15 +-
tests/virtestmock.c | 3 +-
tests/virusbmock.c | 4 +-
tests/vmx2xmltest.c | 5 +-
tests/xml2vmxtest.c | 5 +-
tools/virsh-completer-checkpoint.c | 3 +-
tools/virsh-completer-domain.c | 15 +-
tools/virsh-completer-interface.c | 3 +-
tools/virsh-completer-network.c | 14 +-
tools/virsh-completer-nodedev.c | 15 +-
tools/virsh-completer-nwfilter.c | 6 +-
tools/virsh-completer-pool.c | 15 +-
tools/virsh-completer-secret.c | 10 +-
tools/virsh-completer-snapshot.c | 3 +-
tools/virsh-completer-volume.c | 3 +-
tools/virsh-completer.c | 8 +-
tools/virt-admin-completer.c | 3 +-
tools/virt-login-shell-helper.c | 17 +-
tools/vsh-table.c | 3 +-
tools/vsh.c | 11 +-
266 files changed, 1906 insertions(+), 3460 deletions(-)
create mode 100644 scripts/cocci-macro-file.h
--
2.21.0
3
40
22 Oct '19
This simplifies some functions, but mostly
libxlDomainManagedSavePath() which is going to be modified in
future commits.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/libxl/libxl_domain.c | 34 ++++++++++------------------------
1 file changed, 10 insertions(+), 24 deletions(-)
diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c
index 25228af7a6..d79c3c1ed7 100644
--- a/src/libxl/libxl_domain.c
+++ b/src/libxl/libxl_domain.c
@@ -475,10 +475,9 @@ libxlDomainShutdownThread(void *opaque)
libxlDriverPrivatePtr driver = shutdown_info->driver;
virObjectEventPtr dom_event = NULL;
libxl_shutdown_reason xl_reason = ev->u.domain_shutdown.shutdown_reason;
- libxlDriverConfigPtr cfg;
+ g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
libxl_domain_config d_config;
- cfg = libxlDriverConfigGet(driver);
libxl_domain_config_init(&d_config);
vm = virDomainObjListFindByID(driver->domains, ev->domid);
@@ -600,7 +599,6 @@ libxlDomainShutdownThread(void *opaque)
libxl_event_free(cfg->ctx, ev);
VIR_FREE(shutdown_info);
libxl_domain_config_dispose(&d_config);
- virObjectUnref(cfg);
}
static void
@@ -611,11 +609,9 @@ libxlDomainDeathThread(void *opaque)
libxl_event *ev = shutdown_info->event;
libxlDriverPrivatePtr driver = shutdown_info->driver;
virObjectEventPtr dom_event = NULL;
- libxlDriverConfigPtr cfg;
+ g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
libxlDomainObjPrivatePtr priv;
- cfg = libxlDriverConfigGet(driver);
-
vm = virDomainObjListFindByID(driver->domains, ev->domid);
if (!vm) {
/* vm->def->id already cleared, means the death was handled by the
@@ -647,7 +643,6 @@ libxlDomainDeathThread(void *opaque)
virObjectEventStateQueue(driver->domainEventState, dom_event);
libxl_event_free(cfg->ctx, ev);
VIR_FREE(shutdown_info);
- virObjectUnref(cfg);
}
@@ -661,7 +656,7 @@ libxlDomainEventHandler(void *data, VIR_LIBXL_EVENT_CONST libxl_event *event)
libxl_shutdown_reason xl_reason = event->u.domain_shutdown.shutdown_reason;
struct libxlShutdownThreadInfo *shutdown_info = NULL;
virThread thread;
- libxlDriverConfigPtr cfg;
+ g_autoptr(libxlDriverConfig) cfg = NULL;
int ret = -1;
if (event->type != LIBXL_EVENT_TYPE_DOMAIN_SHUTDOWN &&
@@ -710,7 +705,6 @@ libxlDomainEventHandler(void *data, VIR_LIBXL_EVENT_CONST libxl_event *event)
cfg = libxlDriverConfigGet(driver);
/* Cast away any const */
libxl_event_free(cfg->ctx, (libxl_event *)event);
- virObjectUnref(cfg);
VIR_FREE(shutdown_info);
}
@@ -718,10 +712,9 @@ char *
libxlDomainManagedSavePath(libxlDriverPrivatePtr driver, virDomainObjPtr vm)
{
char *ret;
- libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
+ g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
ignore_value(virAsprintf(&ret, "%s/%s.save", cfg->saveDir, vm->def->name));
- virObjectUnref(cfg);
return ret;
}
@@ -808,7 +801,7 @@ int
libxlDomainDestroyInternal(libxlDriverPrivatePtr driver,
virDomainObjPtr vm)
{
- libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
+ g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
libxlDomainObjPrivatePtr priv = vm->privateData;
int ret = -1;
@@ -825,7 +818,6 @@ libxlDomainDestroyInternal(libxlDriverPrivatePtr driver,
if (ret)
priv->ignoreDeathEvent = false;
- virObjectUnref(cfg);
return ret;
}
@@ -839,7 +831,7 @@ libxlDomainCleanup(libxlDriverPrivatePtr driver,
virDomainObjPtr vm)
{
libxlDomainObjPrivatePtr priv = vm->privateData;
- libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
+ g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
int vnc_port;
char *file;
virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
@@ -931,7 +923,6 @@ libxlDomainCleanup(libxlDriverPrivatePtr driver,
}
virDomainObjRemoveTransientDef(vm);
- virObjectUnref(cfg);
virObjectUnref(conn);
}
@@ -944,7 +935,7 @@ int
libxlDomainAutoCoreDump(libxlDriverPrivatePtr driver,
virDomainObjPtr vm)
{
- libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
+ g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
time_t curtime = time(NULL);
char timestr[100];
struct tm time_info;
@@ -969,7 +960,6 @@ libxlDomainAutoCoreDump(libxlDriverPrivatePtr driver,
cleanup:
VIR_FREE(dumpfile);
- virObjectUnref(cfg);
return ret;
}
@@ -977,7 +967,7 @@ libxlDomainAutoCoreDump(libxlDriverPrivatePtr driver,
int
libxlDomainSetVcpuAffinities(libxlDriverPrivatePtr driver, virDomainObjPtr vm)
{
- libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
+ g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
virDomainVcpuDefPtr vcpu;
libxl_bitmap map;
virBitmapPtr cpumask = NULL;
@@ -1014,7 +1004,6 @@ libxlDomainSetVcpuAffinities(libxlDriverPrivatePtr driver, virDomainObjPtr vm)
cleanup:
libxl_bitmap_dispose(&map);
- virObjectUnref(cfg);
return ret;
}
@@ -1275,7 +1264,7 @@ libxlDomainStart(libxlDriverPrivatePtr driver,
char *managed_save_path = NULL;
int managed_save_fd = -1;
libxlDomainObjPrivatePtr priv = vm->privateData;
- libxlDriverConfigPtr cfg;
+ g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
libxl_asyncprogress_how aop_console_how;
libxl_domain_restore_params params;
@@ -1288,7 +1277,6 @@ libxlDomainStart(libxlDriverPrivatePtr driver,
libxl_domain_config_init(&d_config);
- cfg = libxlDriverConfigGet(driver);
/* If there is a managed saved state restore it instead of starting
* from scratch. The old state is removed once the restoring succeeded. */
if (restore_fd < 0) {
@@ -1528,7 +1516,6 @@ libxlDomainStart(libxlDriverPrivatePtr driver,
VIR_FREE(managed_save_path);
virDomainDefFree(def);
VIR_FORCE_CLOSE(managed_save_fd);
- virObjectUnref(cfg);
return ret;
}
@@ -1558,7 +1545,7 @@ libxlDomainDefCheckABIStability(libxlDriverPrivatePtr driver,
{
virDomainDefPtr migratableDefSrc = NULL;
virDomainDefPtr migratableDefDst = NULL;
- libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
+ g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
bool ret = false;
if (!(migratableDefSrc = virDomainDefCopy(src, cfg->caps, driver->xmlopt, NULL, true)) ||
@@ -1572,6 +1559,5 @@ libxlDomainDefCheckABIStability(libxlDriverPrivatePtr driver,
cleanup:
virDomainDefFree(migratableDefSrc);
virDomainDefFree(migratableDefDst);
- virObjectUnref(cfg);
return ret;
}
--
2.21.0
2
1
[libvirt] [PATCH] bhyve_conf: Drop unused 'error' label in virBhyveDriverConfigNew()
by Michal Privoznik 22 Oct '19
by Michal Privoznik 22 Oct '19
22 Oct '19
There's unused 'error' label left after transition from
VIR_STRDUP() to g_strdup (v5.8.0-255-g652cdbe364).
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
Pushed under trivial & build breaker rules.
src/bhyve/bhyve_conf.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/src/bhyve/bhyve_conf.c b/src/bhyve/bhyve_conf.c
index ab5d7f467b..f3e2ebf7c7 100644
--- a/src/bhyve/bhyve_conf.c
+++ b/src/bhyve/bhyve_conf.c
@@ -59,10 +59,6 @@ virBhyveDriverConfigNew(void)
cfg->firmwareDir = g_strdup(DATADIR "/uefi-firmware");
return cfg;
-
- error:
- virObjectUnref(cfg);
- return NULL;
}
int
--
2.21.0
2
1
As preparation to switch to Meson there are some things that needs be
cleaned up to make the conversion easier.
The important thing in Meson is that there is a strict separation
between source and build directory and the distributed tarball by
default contains only files tracked by git with a possibility to
write a script which would add some other sources into the tarball.
Regardless of the adoption of Meson these patches improve our current
build system to fully support VPATH builds.
Pavel Hrdina (25):
4: virt-driver-libxl: remove Fedora 28 check
m4: virt-libnl: drop libnl-1.0 support
m4: virt-netcf: bump minimal version to 0.1.8
m4: virt-selinux: remove obsolete checks
locking: separate lock driver code into libvirt_driver_lock.la
logging: separate log driver code into libvirt_driver_log.la
remote: unify rpc server dispatch generated files
build: move admin code into admin directory
src: move nodist_libvirt_driver_remote_la_SOURCES into remote Makefile
docs: apibuild: remove old code paths
docs: generate files into build dir and stop distributing them
po: generate files into build dir
po: rewrite the way how we generate files
src: generate source files into build directory
src: access: generate source files into build directory
src: admin: generate source files into build directory
src: esx: generate source files into build directory
src: hyperv: generate source files into build directory
src: locking: generate source files into build directory
src: logging: generate source files into build directory
src: lxc: generate source files into build directory
src: remote: generate source files into build directory
include: stop distributing generated source files
src: stop distributing generated source files
tools: stop distributing generated source files
build-aux/syntax-check.mk | 6 +-
docs/Makefile.am | 115 ++++----
docs/apibuild.py | 19 +-
docs/hvsupport.pl | 37 +--
include/libvirt/Makefile.am | 2 +-
m4/virt-driver-libxl.m4 | 17 --
m4/virt-libnl.m4 | 56 +---
m4/virt-netcf.m4 | 18 +-
m4/virt-selinux.m4 | 20 +-
m4/virt-win-symbols.m4 | 4 +-
po/Makefile.am | 47 +--
po/POTFILES | 320 ---------------------
po/POTFILES.in | 320 +++++++++++++++++++++
src/Makefile.am | 94 +-----
src/access/Makefile.inc.am | 17 +-
src/admin/Makefile.inc.am | 109 ++++++-
src/{ => admin}/libvirt-admin.c | 0
src/{ => admin}/libvirt-admin.conf | 0
src/{ => admin}/libvirt_admin_private.syms | 0
src/{ => admin}/libvirt_admin_public.syms | 0
src/bhyve/Makefile.inc.am | 1 +
src/esx/Makefile.inc.am | 9 +-
src/esx/esx_vi_generator.py | 11 +-
src/hyperv/Makefile.inc.am | 9 +-
src/hyperv/hyperv_wmi_generator.py | 11 +-
src/interface/Makefile.inc.am | 2 +
src/interface/interface_backend_netcf.c | 4 -
src/libxl/Makefile.inc.am | 2 +
src/locking/Makefile.inc.am | 30 +-
src/logging/Makefile.inc.am | 30 +-
src/lxc/Makefile.inc.am | 36 ++-
src/network/Makefile.inc.am | 2 +
src/node_device/Makefile.inc.am | 2 +
src/nwfilter/Makefile.inc.am | 2 +
src/qemu/Makefile.inc.am | 2 +
src/qemu/qemu_domain.c | 4 +-
src/remote/Makefile.inc.am | 47 +--
src/remote/remote_daemon_dispatch.c | 4 +-
src/rpc/Makefile.inc.am | 8 +-
src/secret/Makefile.inc.am | 2 +
src/security/security_selinux.c | 22 +-
src/storage/Makefile.inc.am | 2 +
src/util/Makefile.inc.am | 6 +-
src/util/virnetlink.c | 13 +-
src/util/virnetlink.h | 8 -
src/vbox/Makefile.inc.am | 1 +
src/vz/Makefile.inc.am | 1 +
tests/Makefile.am | 4 +
tests/securityselinuxhelper.c | 19 +-
tools/Makefile.am | 1 -
50 files changed, 735 insertions(+), 761 deletions(-)
delete mode 100644 po/POTFILES
create mode 100644 po/POTFILES.in
rename src/{ => admin}/libvirt-admin.c (100%)
rename src/{ => admin}/libvirt-admin.conf (100%)
rename src/{ => admin}/libvirt_admin_private.syms (100%)
rename src/{ => admin}/libvirt_admin_public.syms (100%)
--
2.21.0
3
53
From: Wim ten Have <wim.ten.have(a)oracle.com>
This patch extends guest domain administration by adding a feature that
creates a guest with a NUMA layout, also referred to as vNUMA (Virtual
NUMA).
NUMA (Non-Uniform Memory Access) is a method of configuring a cluster of
nodes within a single multiprocessing system such that each node shares
its processor local memory with other nodes, improving performance and
the ability of the system to be expanded.
The illustration below shows a typical 4-node NUMA system. Within this
system, each socket is equipped with its own distinct memory and some
also with I/O. Access to memory or I/O on remote nodes is only possible
communicating through the "Interconnect."
+-------------+-------+ +-------+-------------+
|NODE0| | | | | |NODE3|
| | CPU00 | CPU03 | | CPU12 | CPU15 | |
| | | | | | | |
| Mem +--- Socket0 ---<-------->--- Socket3 ---+ Mem |
| | | | | | | |
+-----+ CPU01 | CPU02 | | CPU13 | CPU14 | |
| I/O | | | | | | |
+-----+-------^-------+ +-------^-------+-----+
| |
| Interconnect |
| |
+-------------v-------+ +-------v-------------+
|NODE1| | | | | |NODE2|
| | CPU04 | CPU07 | | CPU08 | CPU11 | |
| | | | | | | |
| Mem +--- Socket1 ---<-------->--- Socket2 ---+ Mem |
| | | | | | | |
+-----+ CPU05 | CPU06 | | CPU09 | CPU10 | |
| I/O | | | | | | |
+-----+-------+-------+ +-------+-------+-----+
Unfortunately, NUMA architectures have some drawbacks. For example,
when data is stored in memory associated with Socket2 but is accessed
by a CPU in Socket0, that CPU uses the interconnect to access the
memory associated with Socket2. These interconnect hops add data access
delays. Some high performance software takes NUMA architecture into
account by carefully placing data in memory and pinning the processes
most likely to access that data to CPUs with the shortest access times.
Similarly, such software can pin its I/O processes to CPUs with the
shortest access times to I/O devices. When such software is run within
a guest VM, constructing the VM such that its virtual NUMA topology
mirrors the physical NUMA topology preserves the application software's
performance.
The changes brought by this patch series add a new libvirt domain element
named <vnuma> that allows for dynamic 'host' or 'node' partitioning of
a guest where libvirt inspects the host capabilities and renders a best
guest XML design holding a host matching vNUMA topology.
<domain>
..
<vnuma mode='host|node'
distribution='contiguous|siblings|round-robin|interleave'>
<memory unit='KiB'>524288</memory>
<partition nodeset="1-4,^3" cells="8"/>
</vnuma>
..
</domain>
The content of this <vnuma> element causes libvirt to dynamically
partition the guest domain XML into a 'host' or 'node' numa model.
Under <vnuma mode='host' ... > the guest domain is automatically
partitioned according to the "host" capabilities.
Under <vnuma mode='node' ... > the guest domain is partitioned according
to the nodeset and cells under the vnuma partition subelement.
The optional <vnuma> attribute distribution='type' is to indicate the
guest numa cell cpus distribution. This distribution='type' can have
the following values:
- 'contiguous' delivery, under which the cpus enumerate sequentially
over the numa defined cells.
- 'siblings' cpus are distributed over the numa cells matching the host
CPU SMT model.
- 'round-robin' cpus are distributed over the numa cells matching the
host CPU topology.
- 'interleave' cpus are interleaved one at a time over the numa cells.
The optional subelement <memory> specifies the memory size reserved
for the guest to dimension its <numa> <cell id> size. If no memory is
specified, the <vnuma> <memory> setting is acquired from the guest's
total memory, <domain> <memory> setting.
The optional attribute <partition> is only active when <vnuma mode='node'>
is in effect and allows for defining the active "nodeset" and "cells" to
target for under the "guest" domain. For example, the specified attribute
"nodeset" can limit the assigned host NUMA nodes in effect under the guest
with help of NUMA node tuning (<numatune>.) Alternatively, the provided
"cells" attribute can define the guest number of vNUMA cells to render.
We're planning a 'virsh vnuma' command to convert existing guest domains
to one of these vNUMA models.
Wim ten Have (4):
XML definitions for guest vNUMA and parsing routines
qemu: driver changes adding vNUMA vCPU hotplug support
qemu: driver changes adding vNUMA memory hotplug support
tests: add various tests to exercise vNUMA host partitioning
docs/formatdomain.html.in | 94 ++++
docs/schemas/domaincommon.rng | 65 +++
src/conf/domain_conf.c | 482 +++++++++++++++++-
src/conf/domain_conf.h | 2 +
src/conf/numa_conf.c | 241 ++++++++-
src/conf/numa_conf.h | 58 ++-
src/libvirt_private.syms | 8 +
src/qemu/qemu_driver.c | 65 ++-
src/qemu/qemu_hotplug.c | 95 +++-
.../cpu-host-passthrough-nonuma.args | 29 ++
.../cpu-host-passthrough-nonuma.xml | 19 +
.../cpu-host-passthrough-numa-contiguous.args | 37 ++
.../cpu-host-passthrough-numa-contiguous.xml | 20 +
.../cpu-host-passthrough-numa-interleave.args | 41 ++
.../cpu-host-passthrough-numa-interleave.xml | 19 +
...host-passthrough-numa-node-contiguous.args | 53 ++
...-host-passthrough-numa-node-contiguous.xml | 21 +
...host-passthrough-numa-node-interleave.args | 41 ++
...-host-passthrough-numa-node-interleave.xml | 22 +
...ost-passthrough-numa-node-round-robin.args | 125 +++++
...host-passthrough-numa-node-round-robin.xml | 21 +
...u-host-passthrough-numa-node-siblings.args | 32 ++
...pu-host-passthrough-numa-node-siblings.xml | 23 +
...cpu-host-passthrough-numa-round-robin.args | 37 ++
.../cpu-host-passthrough-numa-round-robin.xml | 22 +
.../cpu-host-passthrough-numa-siblings.args | 37 ++
.../cpu-host-passthrough-numa-siblings.xml | 20 +
.../cpu-host-passthrough-numa.args | 37 ++
.../cpu-host-passthrough-numa.xml | 20 +
tests/qemuxml2argvtest.c | 10 +
30 files changed, 1765 insertions(+), 31 deletions(-)
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-nonuma.args
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-nonuma.xml
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-contiguous.args
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-contiguous.xml
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-interleave.args
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-interleave.xml
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-contiguous.args
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-contiguous.xml
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-interleave.args
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-interleave.xml
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-round-robin.args
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-round-robin.xml
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-siblings.args
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-siblings.xml
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-round-robin.args
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-round-robin.xml
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-siblings.args
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-siblings.xml
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa.args
create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa.xml
--
2.21.0
2
5
= and == are both operators to test for string equality in bash,
but only = is required by POSIX.
Signed-off-by: Maya Rashish <coypu(a)sdf.org>
---
m4/virt-nls.m4 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/m4/virt-nls.m4 b/m4/virt-nls.m4
index be3c53fe4d..fd8707033a 100644
--- a/m4/virt-nls.m4
+++ b/m4/virt-nls.m4
@@ -26,7 +26,7 @@ AC_DEFUN([LIBVIRT_CHECK_NLS],[
then
AC_CHECK_FUNC([gettext], [], [
AC_CHECK_LIB([intl], [gettext], [], [
- if test "x$enable_nls" == "xcheck"
+ if test "x$enable_nls" = "xcheck"
then
enable_nls=no
else
@@ -39,7 +39,7 @@ AC_DEFUN([LIBVIRT_CHECK_NLS],[
if test "x$enable_nls" != "xno"
then
AC_CHECK_HEADERS([libintl.h], [enable_nls=yes],[
- if test "x$enable_nls" == "xcheck"
+ if test "x$enable_nls" = "xcheck"
then
enable_nls=no
else
--
2.23.0
2
1
The file is generated during build, but not ignored.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
Pushed under trivial rule.
.gitignore | 1 +
1 file changed, 1 insertion(+)
diff --git a/.gitignore b/.gitignore
index 85ead5c907..acd88b0340 100644
--- a/.gitignore
+++ b/.gitignore
@@ -120,6 +120,7 @@
/src/admin/admin_client.h
/src/admin/admin_protocol.[ch]
/src/admin/admin_server_dispatch_stubs.h
+/src/bhyve/test_libvirtd_bhyve.aug
/src/bhyve/test_virtbhyved.aug
/src/bhyve/virtbhyved.aug
/src/bhyve/virtbhyved.conf
--
2.21.0
1
0
[libvirt] [PATCHv2 0/1] Add --force flag to virsh blockresize
by martinsson.patrikï¼ gmail.com 21 Oct '19
by martinsson.patrikï¼ gmail.com 21 Oct '19
21 Oct '19
From: Patrik Martinsson <martinsson.patrik(a)gmail.com>
This patch changes the behaviour when shrinking a block device. It only
changes the behaviour in the 'virsh layer', not in the API.
Basically this is a remake of a patch I posted a few weeks ago, but implemented
according to the feedback that was given (hopefully).
Previous discussion can be found at
https://www.redhat.com/archives/libvir-list/2019-October/msg00258.html
Patrik Martinsson (1):
Add --force flag to virsh blockresize
docs/news.xml | 13 +++++++++++++
tools/virsh-domain.c | 34 +++++++++++++++++++++++++++++++---
tools/virsh.pod | 6 +++++-
3 files changed, 49 insertions(+), 4 deletions(-)
--
2.23.0
1
1
Implement snapshot interface and its APIs.
Simon Kobyda (2):
Introduce Domain Snapshot Interface
Implement snapshots APIs
data/org.libvirt.Domain.xml | 26 +++
data/org.libvirt.DomainSnapshot.xml | 41 ++++
src/connect.c | 6 +
src/connect.h | 1 +
src/domain.c | 158 ++++++++++++++++
src/domainsnapshot.c | 282 ++++++++++++++++++++++++++++
src/domainsnapshot.h | 9 +
src/meson.build | 1 +
src/util.c | 49 +++++
src/util.h | 16 ++
tests/libvirttest.py | 14 ++
tests/meson.build | 1 +
tests/test_domain.py | 8 +
tests/test_snapshot.py | 43 +++++
tests/xmldata.py | 6 +
15 files changed, 661 insertions(+)
create mode 100644 data/org.libvirt.DomainSnapshot.xml
create mode 100644 src/domainsnapshot.c
create mode 100644 src/domainsnapshot.h
create mode 100755 tests/test_snapshot.py
--
2.21.0
2
4
[libvirt] [PATCH] conf: Do not validate resolution XML if 'x' or/and 'y' are 0.
by jcfaraccoï¼ gmail.com 21 Oct '19
by jcfaraccoï¼ gmail.com 21 Oct '19
21 Oct '19
From: Julio Faracco <jcfaracco(a)gmail.com>
There is an issue with <resolution/> when of 'x' or 'y' settings are 0.
Function virDomainVideoResolutionDefParseXML() will validate this XML,
but both 'x' and 'y' will be removed. One example, if someone defines
this settings:
<model ...>
<resolution x='1024' y='0'/>
<model/>
After applying this settings, funcion libvirt will remove both
resolutions because virDomainVideoResolutionDefFormat() requires 'x' and
'y' higher than 0. So, the example above will become:
<model ...>
<resolution/>
<model/>
Now, libvirt only adds <resolution/> with 'x' and 'y' if boths strings
are not NULL AND they are higher than 0.
Signed-off-by: Julio Faracco <jcfaracco(a)gmail.com>
---
src/conf/domain_conf.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 88e93f6fb8..d89d8059ce 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -15375,7 +15375,7 @@ virDomainVideoResolutionDefParseXML(xmlNodePtr node)
if (virStrToLong_uip(x, NULL, 10, &def->x) < 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("cannot parse video x-resolution '%s'"), x);
- goto cleanup;
+ goto error;
}
}
@@ -15383,12 +15383,21 @@ virDomainVideoResolutionDefParseXML(xmlNodePtr node)
if (virStrToLong_uip(y, NULL, 10, &def->y) < 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("cannot parse video y-resolution '%s'"), y);
- goto cleanup;
+ goto error;
}
}
+ /* QEMU ignores 'xres' or/and 'yres' with value 0. */
+ if (!def->x || !def->y)
+ goto error;
+
cleanup:
return def;
+
+ error:
+ VIR_FREE(def);
+ def = NULL;
+ goto cleanup;
}
static virDomainVideoDriverDefPtr
--
2.20.1
2
1
My commit removed the last use in the version for platforms
without readline.
Fixes: c937c1d23db00cf0f33091f9d30f7ac33d9d6aa4
Signed-off-by: Ján Tomko <jtomko(a)redhat.com>
---
Fixed as a push builder break.
tools/vsh.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/vsh.c b/tools/vsh.c
index a10a9625e4..07eea4adf9 100644
--- a/tools/vsh.c
+++ b/tools/vsh.c
@@ -3028,7 +3028,8 @@ vshReadlineDeinit(vshControl *ctl G_GNUC_UNUSED)
}
char *
-vshReadline(vshControl *ctl, const char *prompt)
+vshReadline(vshControl *ctl G_GNUC_UNUSED,
+ const char *prompt)
{
char line[1024];
char *r;
--
2.21.0
1
0
21 Oct '19
From: Julio Faracco <jcfaracco(a)gmail.com>
Some people from IBM does not use 'ibm.com' domain emails.
They use personal or other domains.
Signed-off-by: Julio Faracco <jcfaracco(a)gmail.com>
---
docs/gitdm/companies/ibm | 1 +
1 file changed, 1 insertion(+)
diff --git a/docs/gitdm/companies/ibm b/docs/gitdm/companies/ibm
index ce0315df66..de05e1be29 100644
--- a/docs/gitdm/companies/ibm
+++ b/docs/gitdm/companies/ibm
@@ -4,3 +4,4 @@ ibm.com
# to libvirt and we don't have the corresponding @ibm.com address on file.
danielhb413(a)gmail.com
+jcfaracco(a)gmail.com
--
2.20.1
2
1
[libvirt] [PATCH] qemu: fix CPU model error probing capabilities for ppc
by Daniel P. Berrangé 21 Oct '19
by Daniel P. Berrangé 21 Oct '19
21 Oct '19
The CPU driver only supports CPU models for PPC64 architecture, not
plain PPC.
Failed to probe capabilities for /usr/bin/qemu-system-ppc:
this function is not supported by the connection driver:
'ppc' architecture is not supported by CPU driver
This fixes a bug in
commit db873ab3bc5f6fbd7d227727a62ccfee3d1c3e9d
Author: Jiri Denemark <jdenemar(a)redhat.com>
Date: Thu May 17 17:08:42 2018 +0200
qemu: Adapt to changed ppc64 CPU model names
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
src/qemu/qemu_capabilities.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 3ce1556fc2..03093fd73b 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -2454,7 +2454,7 @@ virQEMUCapsFetchCPUDefinitions(qemuMonitorPtr mon,
/* QEMU 2.11 for Power renamed all CPU models to lower case, we need to
* translate them back to libvirt's upper case model names. */
- if (ARCH_IS_PPC(arch)) {
+ if (ARCH_IS_PPC64(arch)) {
VIR_AUTOSTRINGLIST libvirtModels = NULL;
char **name;
--
2.21.0
3
2
21 Oct '19
Ján Tomko (10):
tools: cmdDomblkinfoGet: reindent parameters
virsh: use g_strdup in cmdDomblkinfoGet
virsh: use g_strdup in virshDomainGetEditMetadata
virsh: getSignalNumber: rename variables
virsh: getSignalNumber: use g_autofree
virsh: getSignalNumber: use g_strdup
tools: vshCommandArgvGetArg: one parameter per line
tools: vshCommandArgvGetArg: prefer g_strdup
tools: prefer g_strdup to vshStrdup
tools: delete vshStrdup
tools/virsh-checkpoint.c | 4 +--
tools/virsh-domain-monitor.c | 27 ++++++++++----------
tools/virsh-domain.c | 38 ++++++++++++----------------
tools/virsh-nodedev.c | 5 ++--
tools/virsh-pool.c | 30 +++++++++++-----------
tools/virsh-snapshot.c | 6 ++---
tools/virsh-volume.c | 11 ++++-----
tools/virsh.c | 9 +++----
tools/virt-admin.c | 6 ++---
tools/vsh.c | 48 ++++++++++++++----------------------
tools/vsh.h | 4 ---
11 files changed, 81 insertions(+), 107 deletions(-)
--
2.21.0
3
14
*** BLURB HERE ***
Michal PrÃvoznÃk (2):
virstring: Reimplement g_strdup_printf() and g_strdup_vprintf()
m4: Don't suggest attribute malloc
m4/virt-compile-warnings.m4 | 1 +
src/libvirt_private.syms | 2 ++
src/util/virstring.c | 29 +++++++++++++++++++++++++++++
src/util/virstring.h | 11 +++++++++++
4 files changed, 43 insertions(+)
--
2.21.0
4
6
Some people from IBM does not use 'ibm.com' domain emails.
CC: jcfaracco(a)gmail.com
Suggested-by: Leonardo Augusto Guimarães Garcia <lagarcia(a)br.ibm.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413(a)gmail.com>
---
Julio,
I didn't add you in this list because I am not sure about the
nature of your contributions to Libvirt. Let me know if you want
your email to be added here as well.
docs/gitdm/companies/ibm | 6 ++++++
docs/gitdm/companies/others | 1 -
2 files changed, 6 insertions(+), 1 deletion(-)
create mode 100644 docs/gitdm/companies/ibm
diff --git a/docs/gitdm/companies/ibm b/docs/gitdm/companies/ibm
new file mode 100644
index 0000000000..ce0315df66
--- /dev/null
+++ b/docs/gitdm/companies/ibm
@@ -0,0 +1,6 @@
+ibm.com
+
+# These IBM employees used their personal email address when contributing
+# to libvirt and we don't have the corresponding @ibm.com address on file.
+
+danielhb413(a)gmail.com
diff --git a/docs/gitdm/companies/others b/docs/gitdm/companies/others
index db2c0061bd..99dc1ab31e 100644
--- a/docs/gitdm/companies/others
+++ b/docs/gitdm/companies/others
@@ -35,7 +35,6 @@ hitachi.com Hitachi
hoster-ok.com hoster-ok.com
hp.com HP
huawei.com Huawei
-ibm.com IBM
inktank.com Inktank Storage
intel.com Intel
intellilink.co.jp NTT DATA INTELLILINK
--
2.21.0
2
1
[libvirt] [PATCH] build: fix substitution of RUNSTATEDIR in man pages
by Daniel P. Berrangé 18 Oct '19
by Daniel P. Berrangé 18 Oct '19
18 Oct '19
When RUNSTATEDIR was introduced
commit d29c917ef470a25149d1f3787ec494d006549f27
Author: Daniel P. Berrangé <berrange(a)redhat.com>
Date: Tue Aug 20 16:05:12 2019 +0100
src: honour the RUNSTATEDIR variable in all code
The makefile rules for man pages were accidentally not updated for the
new variablle name.
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
src/Makefile.am | 2 +-
src/locking/Makefile.inc.am | 2 +-
src/logging/Makefile.inc.am | 2 +-
src/remote/Makefile.inc.am | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index 937f5216da..a7c1ad0861 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -725,7 +725,7 @@ endif WITH_LIBVIRTD
%.8: %.8.in $(top_srcdir)/configure.ac
$(AM_V_GEN)sed \
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
- -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
+ -e 's|[@]runstatedir[@]|$(runstatedir)|g' \
< $< > $@-t && \
mv $@-t $@
diff --git a/src/locking/Makefile.inc.am b/src/locking/Makefile.inc.am
index eccf7c3a4d..a0822f77d4 100644
--- a/src/locking/Makefile.inc.am
+++ b/src/locking/Makefile.inc.am
@@ -280,7 +280,7 @@ virtlockd.8.in: locking/virtlockd.pod
if grep 'POD ERROR' $@-t1; then rm $@-t1; exit 1; fi && \
sed \
-e 's|SYSCONFDIR|\@sysconfdir\@|g' \
- -e 's|LOCALSTATEDIR|\@localstatedir\@|g' \
+ -e 's|RUNSTATEDIR|\@runstatedir\@|g' \
< $@-t1 > $@-t2 && \
rm -f $@-t1 && \
mv $@-t2 $@
diff --git a/src/logging/Makefile.inc.am b/src/logging/Makefile.inc.am
index 74e94636a6..6eda40275c 100644
--- a/src/logging/Makefile.inc.am
+++ b/src/logging/Makefile.inc.am
@@ -118,7 +118,7 @@ virtlogd.8.in: logging/virtlogd.pod
if grep 'POD ERROR' $@-t1; then rm $@-t1; exit 1; fi && \
sed \
-e 's|SYSCONFDIR|\@sysconfdir\@|g' \
- -e 's|LOCALSTATEDIR|\@localstatedir\@|g' \
+ -e 's|RUNSTATEDIR|\@runstatedir\@|g' \
< $@-t1 > $@-t2 && \
rm -f $@-t1 && \
mv $@-t2 $@
diff --git a/src/remote/Makefile.inc.am b/src/remote/Makefile.inc.am
index 071d19d26a..0f4f1ae8d5 100644
--- a/src/remote/Makefile.inc.am
+++ b/src/remote/Makefile.inc.am
@@ -455,7 +455,7 @@ libvirtd.8.in: remote/libvirtd.pod
if grep 'POD ERROR' $@-t1; then rm $@-t1; exit 1; fi && \
sed \
-e 's|SYSCONFDIR|\@sysconfdir\@|g' \
- -e 's|LOCALSTATEDIR|\@localstatedir\@|g' \
+ -e 's|RUNSTATEDIR|\@runstatedir\@|g' \
< $@-t1 > $@-t2 && \
rm -f $@-t1 && \
mv $@-t2 $@
--
2.21.0
3
2
Upstream Xen has traditionally installed various hotplug and
utility scripts in /etc/xen/scripts/. openSUSE is slowly moving
all distribution provided configuration files and scripts from
/etc to /usr. In the case of the Xen scripts provided under
/etc/xen/scripts/, they will be moving to /usr/lib/xen/scripts/.
Adjust the libvirtd Apparmor profile to allow executing scripts
from this location.
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
If this is deemed too distro-specific I'm happy to maintain a
downstream patch.
src/security/apparmor/usr.sbin.libvirtd | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/security/apparmor/usr.sbin.libvirtd b/src/security/apparmor/usr.sbin.libvirtd
index 29f9936ad9..b0d23c80f3 100644
--- a/src/security/apparmor/usr.sbin.libvirtd
+++ b/src/security/apparmor/usr.sbin.libvirtd
@@ -104,6 +104,7 @@ profile libvirtd /usr/sbin/libvirtd flags=(attach_disconnected) {
/usr/{lib,lib64}/libvirt/libvirt_iohelper ix,
/etc/libvirt/hooks/** rmix,
/etc/xen/scripts/** rmix,
+ /usr/{lib,lib64}/xen/scripts/** rmix,
# allow changing to our UUID-based named profiles
change_profile -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
--
2.23.0
2
3
[libvirt] [PATCH] util: add stdlib.h include for abort() prototype
by Daniel P. Berrangé 18 Oct '19
by Daniel P. Berrangé 18 Oct '19
18 Oct '19
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
Pushed as a build fix for Mingw
src/util/glibcompat.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/util/glibcompat.c b/src/util/glibcompat.c
index 25dedf0ed5..3f830840cf 100644
--- a/src/util/glibcompat.c
+++ b/src/util/glibcompat.c
@@ -18,6 +18,8 @@
#include <config.h>
+#include <stdlib.h>
+
#include "glibcompat.h"
#undef g_strdup_printf
--
2.21.0
1
0
The following changes since commit f22f553efffd083ff624be116726f843a39f1148:
Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20191013' into staging (2019-10-17 16:48:56 +0100)
are available in the Git repository at:
https://github.com/jnsnow/qemu.git tags/bitmaps-pull-request
for you to fetch changes up to 3264ffced3d087bbe72d759639ef84fd5bd924cc:
dirty-bitmaps: remove deprecated autoload parameter (2019-10-17 17:53:28 -0400)
----------------------------------------------------------------
pull request
----------------------------------------------------------------
John Snow (2):
MAINTAINERS: Add Vladimir as a reviewer for bitmaps
dirty-bitmaps: remove deprecated autoload parameter
Vladimir Sementsov-Ogievskiy (17):
util/hbitmap: strict hbitmap_reset
block: move bdrv_can_store_new_dirty_bitmap to block/dirty-bitmap.c
block/dirty-bitmap: return int from
bdrv_remove_persistent_dirty_bitmap
block/qcow2: proper locking on bitmap add/remove paths
block/dirty-bitmap: drop meta
block/dirty-bitmap: add bs link
block/dirty-bitmap: drop BdrvDirtyBitmap.mutex
block/dirty-bitmap: refactor bdrv_dirty_bitmap_next
block: switch reopen queue from QSIMPLEQ to QTAILQ
block: reverse order for reopen commits
iotests: add test-case to 165 to test reopening qcow2 bitmaps to RW
block/qcow2-bitmap: get rid of bdrv_has_changed_persistent_bitmaps
block/qcow2-bitmap: drop qcow2_reopen_bitmaps_rw_hint()
block/qcow2-bitmap: do not remove bitmaps on reopen-ro
iotests: add test 260 to check bitmap life after snapshot + commit
block/qcow2-bitmap: fix and improve qcow2_reopen_bitmaps_rw
qcow2-bitmap: move bitmap reopen-rw code to qcow2_reopen_commit
qemu-deprecated.texi | 20 ++-
qapi/block-core.json | 6 +-
block/qcow2.h | 19 +--
include/block/block.h | 2 +-
include/block/block_int.h | 20 +--
include/block/dirty-bitmap.h | 34 ++--
include/qemu/hbitmap.h | 5 +
block.c | 79 +++------
block/backup.c | 8 +-
block/block-copy.c | 2 +-
block/dirty-bitmap.c | 290 +++++++++++++++++++--------------
block/mirror.c | 4 +-
block/qcow2-bitmap.c | 212 +++++++++++++++---------
block/qcow2.c | 22 ++-
blockdev.c | 40 ++---
migration/block-dirty-bitmap.c | 11 +-
migration/block.c | 4 +-
tests/test-hbitmap.c | 2 +-
util/hbitmap.c | 4 +
MAINTAINERS | 3 +-
tests/qemu-iotests/165 | 57 ++++++-
tests/qemu-iotests/165.out | 4 +-
tests/qemu-iotests/260 | 89 ++++++++++
tests/qemu-iotests/260.out | 52 ++++++
tests/qemu-iotests/group | 1 +
25 files changed, 623 insertions(+), 367 deletions(-)
create mode 100755 tests/qemu-iotests/260
create mode 100644 tests/qemu-iotests/260.out
--
2.21.0
2
20
* Handle the -2 error case
* Allow sending arbitrary byte array, not just UTF-8 strings
* Fix FFI declaration, takes size_t, not c_uint
* Return usize to be more idiomatic (type used for slice indexing)
Signed-off-by: Linus Färnstrand <faern(a)faern.net>
---
src/stream.rs | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/src/stream.rs b/src/stream.rs
index af6c8ec..2ca5d0b 100644
--- a/src/stream.rs
+++ b/src/stream.rs
@@ -34,7 +34,7 @@ pub mod sys {
extern "C" {
fn virStreamSend(c: sys::virStreamPtr,
data: *const libc::c_char,
- nbytes: libc::c_uint)
+ nbytes: libc::size_t)
-> libc::c_int;
fn virStreamRecv(c: sys::virStreamPtr,
data: *mut libc::c_char,
@@ -105,16 +105,15 @@ impl Stream {
}
}
- pub fn send(&self, data: &str) -> Result<u32, Error> {
- unsafe {
- let ret = virStreamSend(self.as_ptr(),
- string_to_c_chars!(data),
- data.len() as libc::c_uint);
- if ret == -1 {
- return Err(Error::new());
- }
- return Ok(ret as u32);
- }
+ pub fn send(&self, data: &[u8]) -> Result<usize, Error> {
+ let ret = unsafe {
+ virStreamSend(
+ self.as_ptr(),
+ data.as_ptr() as *mut libc::c_char,
+ data.len()
+ )
+ };
+ usize::try_from(ret).map_err(|_| Error::new())
}
pub fn recv(&self, buf: &mut [u8]) -> Result<usize, Error> {
--
2.21.0
3
3
[libvirt] [PATCH] conf: Fix memory leak caused by missing VIR_FREE for video resolution.
by jcfaraccoï¼ gmail.com 18 Oct '19
by jcfaraccoï¼ gmail.com 18 Oct '19
18 Oct '19
From: Julio Faracco <jcfaracco(a)gmail.com>
Commit 72862797 introduced resolution settings for QEMU video drivers.
It includes a new structure inside video definition. So, the code needs
to clear pointer allocation for that structure into clear function
virDomainVideoDefClear(). This commit adds this missing VIR_FREE().
Signed-off-by: Julio Faracco <jcfaracco(a)gmail.com>
---
src/conf/domain_conf.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 88e93f6fb8..696a01043e 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -2850,6 +2850,7 @@ virDomainVideoDefClear(virDomainVideoDefPtr def)
if (def->accel)
VIR_FREE(def->accel->rendernode);
VIR_FREE(def->accel);
+ VIR_FREE(def->res);
VIR_FREE(def->virtio);
if (def->driver)
VIR_FREE(def->driver->vhost_user_binary);
--
2.20.1
2
1
[libvirt] [PATCH v3] glibcompat: Reimplement g_strdup_printf() and g_strdup_vprintf()
by Michal Privoznik 18 Oct '19
by Michal Privoznik 18 Oct '19
18 Oct '19
These functions don't really abort() on OOM. The fix was merged
upstream, but not in the minimal version we require. Provide our
own implementation which can be removed once we bump the minimal
version.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
Diff to v3:
- fixed infinite recursion
src/internal.h | 1 +
src/libvirt_private.syms | 5 ++++
src/util/Makefile.inc.am | 2 ++
src/util/glibcompat.c | 51 ++++++++++++++++++++++++++++++++++++++++
src/util/glibcompat.h | 31 ++++++++++++++++++++++++
5 files changed, 90 insertions(+)
create mode 100644 src/util/glibcompat.c
create mode 100644 src/util/glibcompat.h
diff --git a/src/internal.h b/src/internal.h
index fb17b87baa..5b0a2335f5 100644
--- a/src/internal.h
+++ b/src/internal.h
@@ -64,6 +64,7 @@
#include "libvirt/virterror.h"
#include "c-strcase.h"
+#include "glibcompat.h"
/* Merely casting to (void) is not sufficient since the
* introduction of the "warn_unused_result" attribute
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 0da02bb8bd..206295bef0 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1485,6 +1485,11 @@ virSecurityManagerTransactionStart;
virSecurityManagerVerify;
+# util/glibcompat.h
+vir_g_strdup_printf;
+vir_g_strdup_vprintf;
+
+
# util/viralloc.h
virAlloc;
virAllocN;
diff --git a/src/util/Makefile.inc.am b/src/util/Makefile.inc.am
index 705b93c93c..d8c8e61c4b 100644
--- a/src/util/Makefile.inc.am
+++ b/src/util/Makefile.inc.am
@@ -3,6 +3,8 @@
# These files are not related to driver APIs. Simply generic
# helper APIs for various purposes
UTIL_SOURCES = \
+ util/glibcompat.c \
+ util/glibcompat.h \
util/viralloc.c \
util/viralloc.h \
util/virarch.c \
diff --git a/src/util/glibcompat.c b/src/util/glibcompat.c
new file mode 100644
index 0000000000..5c50153efe
--- /dev/null
+++ b/src/util/glibcompat.c
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2019 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "glibcompat.h"
+
+#undef g_strdup_printf
+#undef g_strdup_vprintf
+
+/* Due to a bug in glib, g_strdup_printf() nor g_strdup_vprintf()
+ * abort on OOM. It's fixed in glib's upstream. Provide our own
+ * implementation until the fix get's distributed. */
+char *
+vir_g_strdup_printf(const char *msg, ...)
+{
+ va_list args;
+ char *ret;
+ va_start(args, msg);
+ ret = g_strdup_vprintf(msg, args);
+ if (!ret)
+ abort();
+ va_end(args);
+ return ret;
+}
+
+
+char *
+vir_g_strdup_vprintf(const char *msg, va_list args)
+{
+ char *ret;
+ ret = g_strdup_vprintf(msg, args);
+ if (!ret)
+ abort();
+ return ret;
+}
diff --git a/src/util/glibcompat.h b/src/util/glibcompat.h
new file mode 100644
index 0000000000..9c5fef09bf
--- /dev/null
+++ b/src/util/glibcompat.h
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2019 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <glib.h>
+
+char *vir_g_strdup_printf(const char *msg, ...)
+ G_GNUC_PRINTF(1, 2);
+char *vir_g_strdup_vprintf(const char *msg, va_list args)
+ G_GNUC_PRINTF(1, 0);
+
+#if !GLIB_CHECK_VERSION(2, 64, 0)
+# define g_strdup_printf vir_g_strdup_printf
+# define g_strdup_vprintf vir_g_strdup_vprintf
+#endif
--
2.21.0
3
2
[libvirt] [PATCH v2] glibcompat: Reimplement g_strdup_printf() and g_strdup_vprintf()
by Michal Privoznik 18 Oct '19
by Michal Privoznik 18 Oct '19
18 Oct '19
These functions don't really abort() on OOM. The fix was merged
upstream, but not in the minimal version we require. Provide our
own implementation which can be removed once we bump the minimal
version.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
v2 of:
https://www.redhat.com/archives/libvir-list/2019-October/msg01153.html
diff to v1:
- moved the code to src/utils/glibcompat.c
src/internal.h | 1 +
src/libvirt_private.syms | 5 +++++
src/util/Makefile.inc.am | 2 ++
src/util/glibcompat.c | 48 ++++++++++++++++++++++++++++++++++++++++
src/util/glibcompat.h | 31 ++++++++++++++++++++++++++
5 files changed, 87 insertions(+)
create mode 100644 src/util/glibcompat.c
create mode 100644 src/util/glibcompat.h
diff --git a/src/internal.h b/src/internal.h
index fb17b87baa..5b0a2335f5 100644
--- a/src/internal.h
+++ b/src/internal.h
@@ -64,6 +64,7 @@
#include "libvirt/virterror.h"
#include "c-strcase.h"
+#include "glibcompat.h"
/* Merely casting to (void) is not sufficient since the
* introduction of the "warn_unused_result" attribute
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 0da02bb8bd..206295bef0 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1485,6 +1485,11 @@ virSecurityManagerTransactionStart;
virSecurityManagerVerify;
+# util/glibcompat.h
+vir_g_strdup_printf;
+vir_g_strdup_vprintf;
+
+
# util/viralloc.h
virAlloc;
virAllocN;
diff --git a/src/util/Makefile.inc.am b/src/util/Makefile.inc.am
index 705b93c93c..d8c8e61c4b 100644
--- a/src/util/Makefile.inc.am
+++ b/src/util/Makefile.inc.am
@@ -3,6 +3,8 @@
# These files are not related to driver APIs. Simply generic
# helper APIs for various purposes
UTIL_SOURCES = \
+ util/glibcompat.c \
+ util/glibcompat.h \
util/viralloc.c \
util/viralloc.h \
util/virarch.c \
diff --git a/src/util/glibcompat.c b/src/util/glibcompat.c
new file mode 100644
index 0000000000..af638f4d8c
--- /dev/null
+++ b/src/util/glibcompat.c
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2019 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "glibcompat.h"
+
+/* Due to a bug in glib, g_strdup_printf() nor g_strdup_vprintf()
+ * abort on OOM. It's fixed in glib's upstream. Provide our own
+ * implementation until the fix get's distributed. */
+char *
+vir_g_strdup_printf(const char *msg, ...)
+{
+ va_list args;
+ char *ret;
+ va_start(args, msg);
+ ret = g_strdup_vprintf(msg, args);
+ if (!ret)
+ abort();
+ va_end(args);
+ return ret;
+}
+
+
+char *
+vir_g_strdup_vprintf(const char *msg, va_list args)
+{
+ char *ret;
+ ret = g_strdup_vprintf(msg, args);
+ if (!ret)
+ abort();
+ return ret;
+}
diff --git a/src/util/glibcompat.h b/src/util/glibcompat.h
new file mode 100644
index 0000000000..9c5fef09bf
--- /dev/null
+++ b/src/util/glibcompat.h
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2019 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <glib.h>
+
+char *vir_g_strdup_printf(const char *msg, ...)
+ G_GNUC_PRINTF(1, 2);
+char *vir_g_strdup_vprintf(const char *msg, va_list args)
+ G_GNUC_PRINTF(1, 0);
+
+#if !GLIB_CHECK_VERSION(2, 64, 0)
+# define g_strdup_printf vir_g_strdup_printf
+# define g_strdup_vprintf vir_g_strdup_vprintf
+#endif
--
2.21.0
4
4
Hi libvirt experts,
I have some questions about live migration.
* If a live migration failed during migrating, will the domain exist on the
destination host?
* Is the flag VIR_MIGRATE_PAUSED make sense to live migration? It's a little
confusing for me. Does that indicate if I set this flag, then the domain on
the destination will not disappear even if the migration is failed, and it will
in 'paused' status? If not setting this flag, what will it be? It may be similar
to the question above.
I filed a bug https://bugzilla.redhat.com/show_bug.cgi?id=1762703 about this flag,
since its description is not very clear.
Thanks in advance, looking forward to your reply.
Regards,
Luyao
--
2.7.4
2
1
[libvirt] [PATCH v4 0/2] Add resolution properties for QEMU video devices
by jcfaraccoï¼ gmail.com 18 Oct '19
by jcfaraccoï¼ gmail.com 18 Oct '19
18 Oct '19
From: Julio Faracco <jcfaracco(a)gmail.com>
This serie adds resolution ('x' and 'y') properties into XML definition
for QEMU video devices to specify a default resolution. This specific
case is not considering those attributes as a QEMU capabilities due to
complexity of code versus test complexity versus a real gain. This
skeleton would work very well initially. After, it should be possible to
include them as a capabilities without changing this serie.
v1-v2: Adds suggestions of multiple members.
v2-v3: Adds Cole's suggestions.
v3-v4: Adds Cole's suggestions again.
Julio Faracco (2):
conf: Add 'x' and 'y' resolution into video XML definition
qemu: Generate 'xres' and 'yres' for QEMU video devices
docs/formatdomain.html.in | 5 +-
docs/schemas/domaincommon.rng | 10 +++
src/conf/domain_conf.c | 63 ++++++++++++++++++-
src/conf/domain_conf.h | 5 ++
src/conf/virconftypes.h | 3 +
src/qemu/qemu_command.c | 5 ++
src/qemu/qemu_domain.c | 11 ++++
.../video-qxl-resolution.args | 32 ++++++++++
.../qemuxml2argvdata/video-qxl-resolution.xml | 42 +++++++++++++
tests/qemuxml2argvtest.c | 4 ++
.../video-qxl-resolution.xml | 42 +++++++++++++
tests/qemuxml2xmltest.c | 1 +
12 files changed, 221 insertions(+), 2 deletions(-)
create mode 100644 tests/qemuxml2argvdata/video-qxl-resolution.args
create mode 100644 tests/qemuxml2argvdata/video-qxl-resolution.xml
create mode 100644 tests/qemuxml2xmloutdata/video-qxl-resolution.xml
--
2.20.1
5
9
[libvirt] [PATCH] util: set bridge device MAC address explicitly during virNetDevBridgeCreate
by Laine Stump 18 Oct '19
by Laine Stump 18 Oct '19
18 Oct '19
Remember when the MAC address of libvirt-created bridges weren't
stable, and changed as guests were started and stopped? Pepperidge
Farms remembers.
(No, I would never actually push a comment like that! Just wanted to
get your attention).
When libvirt first implemented a stable and configurable MAC address
for the bridges created for libvirt virtual networks (commit
5754dbd56d, in libvirt v8.8.0) most distro stable releases didn't
support explicitly setting the MAC address of a bridge; the bridge
just always assumed the lowest numbered MAC of all attached
interfaces. Because of this, we stabilized the bridge MAC address by
creating a "dummy" tap interface with a MAC address guaranteed to be
lower than any of the guest tap devices' MACs (which all started with
0xFE, so it's not difficult to do) and attached it to the bridge -
this was the inception of the "virbr0-nic" device that has confused so
many people over the years.
Even though the linux kernel had recently gained support for
explicitly setting a bridge MAC, we deemed it unnecessary to set the
MAC that way, because the other (indirect) method worked everywhere.
But recently there have been reports that the bridge MAC address was
not following the setting in the network config, and mismatched the
MAC of the dummy tap device (which was still correct). It turns out
that this is due to a change in systemd/udev that persists whatever
MAC address is set for a bridge when it's initially started:
https://github.com/systemd/systemd/blob/master/NEWS#L499
which was the result of:
https://github.com/systemd/systemd/issues/3374
(apparently if there is no MAC saved for a bridge by the name of a
bridge being created, the random MAC generated during creation is
saved, and then that same MAC is used to explicitly set the MAC each
time it is created). Once a bridge has an explicitly set MAC, the "use
the lowest numbered MAC of attached devices" rule is ignored, so our
dummy tap device is like the goggles - it does nothing! (well, almost).
We could whine about changes in default behavior, etc. etc., but
because the change was in response to actual user problems, that seems
likely a fruitless task. Fortunately, time has marched on, and even
distro releases that are old enough that they are no longer supported
by upstream libvirt (e.g. RHEL6) have support for explicitly setting a
bridge device MAC address, either during creation or with a separate
ioctl after creation, so we can now do that.
The method is to add a mac arg to virNetDevBridgeCreate(). In the case
of platforms where the bridge is created with a netlink RTM_NEWLINK
message, we just add the desired mac to the message. For platforms
that still use an ioctl (either SIOCBRADDBR or SIOCIFCREATE2), we make
a separate call to virNetDevSetMAC() after creating the bridge.
This makes the dummy tap pointless for purposes of setting the MAC
address, but it is still useful for IPv6 DAD initialization (which
apparently requires at least one interface to be attached to the
bridge and online), so it hasn't been removed. (I'm considered making
another patch to add the dummy tap device only if the network needs
IPv6 DAD, but haven't decided yet if it's worthwhile).
(NB: we can safely *always* call virNetDevBridgeCreate() with
&def->mac from the network driver because, in spite of the existence
of a "mac_specified" bool in the config suggesting that it may not
always be present, in reality a mac address will always be added to
any network that doesn't have one - this is guaranteed in all cases by
commit a47ae7c004)
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1760851
---
NB: I was unable to test the calling of virNetDevSetMAC() from the
SIOCIFCREATE2 (BSD) version of virNetDevBridgeCreate(); even though I
managed to get a FreeBSD system setup and libvirt built there, when I
tried to start the default network the SIOCIFCREATE2 ioctl itself
failed, so it never even got to the virNetDevSetMAC(). I would
sincerely appreciate if someone more up to speed with libvirt on
FreeBSD/OpenBSD could check that out and let me know if it works
properly.
src/network/bridge_driver.c | 2 +-
src/util/virnetdevbridge.c | 43 ++++++++++++++++++++++++++++++-------
src/util/virnetdevbridge.h | 2 +-
3 files changed, 37 insertions(+), 10 deletions(-)
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 6862818698..4f01bf6664 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -2498,7 +2498,7 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr driver,
def->name);
return -1;
}
- if (virNetDevBridgeCreate(def->bridge) < 0)
+ if (virNetDevBridgeCreate(def->bridge, &def->mac) < 0)
return -1;
if (def->mac_specified) {
diff --git a/src/util/virnetdevbridge.c b/src/util/virnetdevbridge.c
index edf4cc6236..d3a1e3c13e 100644
--- a/src/util/virnetdevbridge.c
+++ b/src/util/virnetdevbridge.c
@@ -379,7 +379,7 @@ virNetDevBridgePortSetUnicastFlood(const char *brname G_GNUC_UNUSED,
*/
#if defined(HAVE_STRUCT_IFREQ) && defined(SIOCBRADDBR)
static int
-virNetDevBridgeCreateWithIoctl(const char *brname)
+virNetDevBridgeCreateWithIoctl(const char *brname, const virMacAddr *mac)
{
VIR_AUTOCLOSE fd = -1;
@@ -392,22 +392,35 @@ virNetDevBridgeCreateWithIoctl(const char *brname)
return -1;
}
+ if (virNetDevSetMAC(brname, mac) < 0) {
+ virErrorPtr savederr;
+
+ virErrorPreserveLast(&savederr);
+ ignore_value(ioctl(fd, SIOCBRDELBR, brname));
+ virErrorRestore(&savederr);
+ return -1;
+ }
+
return 0;
}
#endif
#if defined(__linux__) && defined(HAVE_LIBNL)
int
-virNetDevBridgeCreate(const char *brname)
+virNetDevBridgeCreate(const char *brname, const virMacAddr *mac)
{
/* use a netlink RTM_NEWLINK message to create the bridge */
int error = 0;
+ virNetlinkNewLinkData data = {
+ .mac = mac,
+ };
+
- if (virNetlinkNewLink(brname, "bridge", NULL, &error) < 0) {
+ if (virNetlinkNewLink(brname, "bridge", &data, &error) < 0) {
# if defined(HAVE_STRUCT_IFREQ) && defined(SIOCBRADDBR)
if (error == -EOPNOTSUPP) {
/* fallback to ioctl if netlink doesn't support creating bridges */
- return virNetDevBridgeCreateWithIoctl(brname);
+ return virNetDevBridgeCreateWithIoctl(brname, mac);
}
# endif
if (error < 0)
@@ -423,15 +436,17 @@ virNetDevBridgeCreate(const char *brname)
#elif defined(HAVE_STRUCT_IFREQ) && defined(SIOCBRADDBR)
int
-virNetDevBridgeCreate(const char *brname)
+virNetDevBridgeCreate(const char *brname,
+ const virMacAddr *mac)
{
- return virNetDevBridgeCreateWithIoctl(brname);
+ return virNetDevBridgeCreateWithIoctl(brname, mac);
}
#elif defined(HAVE_STRUCT_IFREQ) && defined(SIOCIFCREATE2)
int
-virNetDevBridgeCreate(const char *brname)
+virNetDevBridgeCreate(const char *brname,
+ const virMacAddr *mac)
{
struct ifreq ifr;
VIR_AUTOCLOSE s = -1;
@@ -448,10 +463,21 @@ virNetDevBridgeCreate(const char *brname)
if (virNetDevSetName(ifr.ifr_name, brname) == -1)
return -1;
+ if (virNetDevSetMAC(brname, mac) < 0) {
+ virErrorPtr savederr;
+
+ virErrorPreserveLast(&savederr);
+ ignore_value(virNetDevBridgeDelete(brname));
+ virErrorRestore(&savederr);
+ return -1;
+ }
+
return 0;
}
#else
-int virNetDevBridgeCreate(const char *brname)
+int
+virNetDevBridgeCreate(const char *brname,
+ const virMacAddr *mac ATTRIBUTE_UNUSED)
{
virReportSystemError(ENOSYS,
_("Unable to create bridge %s"), brname);
@@ -528,6 +554,7 @@ virNetDevBridgeDelete(const char *brname)
_("Unable to remove bridge %s"),
brname);
return -1;
+
}
return 0;
diff --git a/src/util/virnetdevbridge.h b/src/util/virnetdevbridge.h
index 88284d6bed..c47597dec9 100644
--- a/src/util/virnetdevbridge.h
+++ b/src/util/virnetdevbridge.h
@@ -21,7 +21,7 @@
#include "internal.h"
#include "virmacaddr.h"
-int virNetDevBridgeCreate(const char *brname)
+int virNetDevBridgeCreate(const char *brname, const virMacAddr *mac)
ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT;
int virNetDevBridgeDelete(const char *brname)
ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT;
--
2.23.0
1
1
18 Oct '19
Libvirtd has set SIGPIPE to ignored, and virFork resets all signal
handlers to the defaults. But child process may write logs to
stderr/stdout, that may generate SIGPIPE if journald has stopped.
So block SIGPIPE in virFork, and unblock it before execve.
Signed-off-by: Wang Yechao <wang.yechao255(a)zte.com.cn>
---
v1 patch:
https://www.redhat.com/archives/libvir-list/2019-October/msg00720.html
Changes in v2:
- use pthread_sigmask to block SIGPIPE
Changes in v3:
- pass SIG_UNBLOCK(not SIG_SETMASK) to pthread_sigmask when unlock SIGPIPE
---
src/util/vircommand.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/src/util/vircommand.c b/src/util/vircommand.c
index 79e1e87..bd3a582 100644
--- a/src/util/vircommand.c
+++ b/src/util/vircommand.c
@@ -321,6 +321,15 @@ virFork(void)
virDispatchError(NULL);
_exit(EXIT_CANCELED);
}
+
+ sigemptyset(&newmask);
+ sigaddset(&newmask, SIGPIPE);
+ if (pthread_sigmask(SIG_BLOCK, &newmask, NULL) != 0) {
+ virReportSystemError(errno, "%s", _("cannot block SIGPIPE"));
+ virDispatchError(NULL);
+ _exit(EXIT_CANCELED);
+ }
+
}
return pid;
}
@@ -553,6 +562,7 @@ virExec(virCommandPtr cmd)
struct sigaction waxon, waxoff;
VIR_AUTOFREE(gid_t *) groups = NULL;
int ngroups;
+ sigset_t set;
if (cmd->args[0][0] != '/') {
if (!(binary = binarystr = virFindFileInPath(cmd->args[0]))) {
@@ -792,6 +802,13 @@ virExec(virCommandPtr cmd)
/* Close logging again to ensure no FDs leak to child */
virLogReset();
+ sigemptyset(&set);
+ sigaddset(&set, SIGPIPE);
+ if (pthread_sigmask(SIG_UNBLOCK, &set, NULL) != 0) {
+ virReportSystemError(errno, "%s", _("cannot unblock SIGPIPE"));
+ goto fork_error;
+ }
+
if (cmd->env)
execve(binary, cmd->args, cmd->env);
else
--
1.8.3.1
4
8