[PATCH] virdomainjob: preserveJob: memdup the cb structure instead of copying it
by Kristina Hanicova
In case of variable 'oldjob' (job structure) in
qemuProcessReconnect() the init function was not called and the
cb pointer was just copied from the existing job structure in
virDomainObjPreserveJob(). This caused that the job and oldjob
had the same pointer, which was later freed at the end of the
qemuProcessReconnect() function by automatic call to
virDomainObjClearJob().
This caused an invalid read in case of a daemon crash as the job
structure was trying to read cb which had been already freed.
This patch changes the copying to g_memdup that allocates
different pointer, which can be later safely freed.
Signed-off-by: Kristina Hanicova <khanicov(a)redhat.com>
---
src/conf/virdomainjob.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/conf/virdomainjob.c b/src/conf/virdomainjob.c
index aca801af38..0c67e84ef1 100644
--- a/src/conf/virdomainjob.c
+++ b/src/conf/virdomainjob.c
@@ -210,7 +210,7 @@ virDomainObjPreserveJob(virDomainJobObj *currJob,
if (currJob->cb && currJob->cb->allocJobPrivate &&
!(currJob->privateData = currJob->cb->allocJobPrivate()))
return -1;
- job->cb = currJob->cb;
+ job->cb = g_memdup(currJob->cb, sizeof(*currJob->cb));
virDomainObjResetJob(currJob);
virDomainObjResetAsyncJob(currJob);
--
2.37.3
2 years, 1 month
Re: Why host device disappear in libvirt doman xml?
by Michal Prívozník
[I'm going to repeat this for the last time, please keep the list on CC
list]
On 9/29/22 10:15, 陈新隆 wrote:
> Like pic below, `cat /run/libvirt/qemu/<domain>.xml` outputs <device
> alias='ua-gpu-gpu0' /> , `virsh dumpxml <domain>` does not outputs gpu
> hostdev.
>
It's usually better to paste the text, especially since you've posted a
picture of a text.
So, the first virsh dumpxml | grep gpu shows empty output. Then, virsh
dumpxml --inactive | grep gpu shows a line where 'ua-gpu-gpu0' alias is
declared for something. Without context lines is hard to tell for what.
Then, you grep /run/libvirt/qemu/$dom.xml where 'gpu' string appears in
two capabilities, and one <device alias=''/>.
Now, as I've said before, it's not uncommon for live XML and inactive
XML to be different. So something has hot-unplugged a device with
ua-gpu-gpu0 alias. And since there is no context lines I can't confirm
what device it was.
And lastly, the XML file under /run is considered libvirt internal and
unless I can try to explain some stuff, but knowing libvirt internals is
a must here. Those <flag/> elements are what we call QEMU capabilities
(flags that libvirt looks for when determining what features is QEMU
capable of). The fact that they have 'gpu' substring is just a
coincidence. Then the <device/> element is a list of device aliases used
by QEMU devices. Again, internal.
> Since the domain is running, then both two commands represent the live
> xml of the domain. Why are there two different output results about gpu
> devices ? Which output should I follow ?
NO, I think I made that clear. Since the domain is running, 'virsh
dumpxml' gives you live XML and 'virsh dumpxml --inactive' gives you
inactive XML. These two are completely different and the only thing that
they are required to have the same is domain name and domain UUID.
Have you read that wiki page I suggested couple of e-mails ago?
If you think a device disappears from your domain then you need to talk
to developers of the software you are using (if I recall correctly you
mentioned KubeVirt?).
>
> image.png
>
> This is a windows vm, connect to vnc server, taskmgr and display adapter
> proves that there's no gpu device now.
Yep, so something hot-unplugged the device. I suspect the management
software on top of libvirt. Libvirt does not detach any device on its
own. And since this is NVIDIA I would not be surprised if it was a
licensing issue, or something similar.
Michal
2 years, 1 month
[PATCH v2 RESEND] qemu: fix memory leak about virDomainEventTunableNew
by luzhipeng
From: lu zhipeng <luzhipeng(a)cestc.cn>
For prevent memory leak and easier to use, So change
virDomainEventTunableNew to get virTypedParameterPtr *params
and set it = NULL.
Signed-off-by: lu zhipeng <luzhipeng(a)cestc.cn>
---
src/conf/domain_event.c | 14 +++++++-------
src/conf/domain_event.h | 4 ++--
src/qemu/qemu_driver.c | 22 ++++++++++------------
src/remote/remote_driver.c | 2 +-
4 files changed, 20 insertions(+), 22 deletions(-)
diff --git a/src/conf/domain_event.c b/src/conf/domain_event.c
index ff8ea2c389..ff39975104 100644
--- a/src/conf/domain_event.c
+++ b/src/conf/domain_event.c
@@ -1495,8 +1495,8 @@ static virObjectEvent *
virDomainEventTunableNew(int id,
const char *name,
unsigned char *uuid,
- virTypedParameterPtr params,
- int nparams)
+ virTypedParameterPtr *params,
+ int nparams)
{
virDomainEventTunable *ev;
@@ -1508,19 +1508,19 @@ virDomainEventTunableNew(int id,
id, name, uuid)))
goto error;
- ev->params = params;
+ ev->params = *params;
ev->nparams = nparams;
-
+ *params = NULL;
return (virObjectEvent *)ev;
error:
- virTypedParamsFree(params, nparams);
+ virTypedParamsFree(*params, nparams);
return NULL;
}
virObjectEvent *
virDomainEventTunableNewFromObj(virDomainObj *obj,
- virTypedParameterPtr params,
+ virTypedParameterPtr *params,
int nparams)
{
return virDomainEventTunableNew(obj->def->id,
@@ -1532,7 +1532,7 @@ virDomainEventTunableNewFromObj(virDomainObj *obj,
virObjectEvent *
virDomainEventTunableNewFromDom(virDomainPtr dom,
- virTypedParameterPtr params,
+ virTypedParameterPtr *params,
int nparams)
{
return virDomainEventTunableNew(dom->id,
diff --git a/src/conf/domain_event.h b/src/conf/domain_event.h
index 4a9f6b988b..f4016dc1e9 100644
--- a/src/conf/domain_event.h
+++ b/src/conf/domain_event.h
@@ -195,11 +195,11 @@ virDomainEventDeviceRemovalFailedNewFromDom(virDomainPtr dom,
virObjectEvent *
virDomainEventTunableNewFromObj(virDomainObj *obj,
- virTypedParameterPtr params,
+ virTypedParameterPtr *params,
int nparams);
virObjectEvent *
virDomainEventTunableNewFromDom(virDomainPtr dom,
- virTypedParameterPtr params,
+ virTypedParameterPtr *params,
int nparams);
virObjectEvent *
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 94b70872d4..3db4592945 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -4472,12 +4472,12 @@ qemuDomainPinVcpuLive(virDomainObj *vm,
&eventMaxparams, paramField, str) < 0)
goto cleanup;
- event = virDomainEventTunableNewFromObj(vm, eventParams, eventNparams);
-
+ event = virDomainEventTunableNewFromObj(vm, &eventParams, eventNparams);
ret = 0;
cleanup:
virObjectEventStateQueue(driver->domainEventState, event);
+ virTypedParamsFree(eventParams, eventNparams);
return ret;
}
@@ -4681,7 +4681,7 @@ qemuDomainPinEmulator(virDomainPtr dom,
str) < 0)
goto endjob;
- event = virDomainEventTunableNewFromDom(dom, eventParams, eventNparams);
+ event = virDomainEventTunableNewFromDom(dom, &eventParams, eventNparams);
}
if (persistentDef) {
@@ -4700,6 +4700,7 @@ qemuDomainPinEmulator(virDomainPtr dom,
cleanup:
virObjectEventStateQueue(driver->domainEventState, event);
virDomainObjEndAPI(&vm);
+ virTypedParamsFree(eventParams, eventNparams);
return ret;
}
@@ -5078,7 +5079,7 @@ qemuDomainPinIOThread(virDomainPtr dom,
&eventMaxparams, paramField, str) < 0)
goto endjob;
- event = virDomainEventTunableNewFromDom(dom, eventParams, eventNparams);
+ event = virDomainEventTunableNewFromDom(dom, &eventParams, eventNparams);
}
if (persistentDef) {
@@ -5106,6 +5107,7 @@ qemuDomainPinIOThread(virDomainPtr dom,
cleanup:
virObjectEventStateQueue(driver->domainEventState, event);
virDomainObjEndAPI(&vm);
+ virTypedParamsFree(eventParams, eventNparams);
return ret;
}
@@ -9633,8 +9635,7 @@ qemuDomainSetSchedulerParametersFlags(virDomainPtr dom,
qemuDomainSaveStatus(vm);
if (eventNparams) {
- event = virDomainEventTunableNewFromDom(dom, eventParams, eventNparams);
- eventNparams = 0;
+ event = virDomainEventTunableNewFromDom(dom, &eventParams, eventNparams);
virObjectEventStateQueue(driver->domainEventState, event);
}
@@ -9654,8 +9655,7 @@ qemuDomainSetSchedulerParametersFlags(virDomainPtr dom,
cleanup:
virDomainObjEndAPI(&vm);
- if (eventNparams)
- virTypedParamsFree(eventParams, eventNparams);
+ virTypedParamsFree(eventParams, eventNparams);
return ret;
}
#undef SCHED_RANGE_CHECK
@@ -16159,8 +16159,7 @@ qemuDomainSetBlockIoTune(virDomainPtr dom,
qemuDomainSaveStatus(vm);
if (eventNparams) {
- event = virDomainEventTunableNewFromDom(dom, eventParams, eventNparams);
- eventNparams = 0;
+ event = virDomainEventTunableNewFromDom(dom, &eventParams, eventNparams);
virObjectEventStateQueue(driver->domainEventState, event);
}
}
@@ -16202,8 +16201,7 @@ qemuDomainSetBlockIoTune(virDomainPtr dom,
VIR_FREE(info.group_name);
VIR_FREE(conf_info.group_name);
virDomainObjEndAPI(&vm);
- if (eventNparams)
- virTypedParamsFree(eventParams, eventNparams);
+ virTypedParamsFree(eventParams, eventNparams);
return ret;
}
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index a4efe101a3..b0dba9057b 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -5078,7 +5078,7 @@ remoteDomainBuildEventCallbackTunable(virNetClientProgram *prog G_GNUC_UNUSED,
return;
}
- event = virDomainEventTunableNewFromDom(dom, params, nparams);
+ event = virDomainEventTunableNewFromDom(dom, ¶ms, nparams);
virObjectUnref(dom);
--
2.31.1
2 years, 1 month
[PATCH v2] cpu_map: Introduce Neoverse N1/N2/V1
by Zhenyu Zhang
Add Neoverse N1/N2/V1 as a supported cpu model.
Signed-off-by: Zhenyu Zhang <zhenyzha(a)redhat.com>
v1: https://listman.redhat.com/archives/libvir-list/2022-September/234294.html
Changelog
=========
v2:
* Introduce Neoverse N1/N2/V1 (Martin)
* Corrected ampere vendor value (Martin)
---
src/cpu_map/arm_Neoverse-N1.xml | 7 +++++++
src/cpu_map/arm_Neoverse-N2.xml | 7 +++++++
src/cpu_map/arm_Neoverse-V1.xml | 7 +++++++
src/cpu_map/arm_vendors.xml | 1 +
src/cpu_map/index.xml | 5 +++++
src/cpu_map/meson.build | 3 +++
6 files changed, 30 insertions(+)
create mode 100644 src/cpu_map/arm_Neoverse-N1.xml
create mode 100644 src/cpu_map/arm_Neoverse-N2.xml
create mode 100644 src/cpu_map/arm_Neoverse-V1.xml
diff --git a/src/cpu_map/arm_Neoverse-N1.xml b/src/cpu_map/arm_Neoverse-N1.xml
new file mode 100644
index 0000000000..db25813cd9
--- /dev/null
+++ b/src/cpu_map/arm_Neoverse-N1.xml
@@ -0,0 +1,7 @@
+<cpus>
+ <model name='Neoverse-N1'>
+ <vendor name='Ampere'/>
+ <pvr value='0xd0c'/>
+ </model>
+</cpus>
+
diff --git a/src/cpu_map/arm_Neoverse-N2.xml b/src/cpu_map/arm_Neoverse-N2.xml
new file mode 100644
index 0000000000..8e8c9d202c
--- /dev/null
+++ b/src/cpu_map/arm_Neoverse-N2.xml
@@ -0,0 +1,7 @@
+<cpus>
+ <model name='Neoverse-N2'>
+ <vendor name='Ampere'/>
+ <pvr value='0xd49'/>
+ </model>
+</cpus>
+
diff --git a/src/cpu_map/arm_Neoverse-V1.xml b/src/cpu_map/arm_Neoverse-V1.xml
new file mode 100644
index 0000000000..82a7d86b08
--- /dev/null
+++ b/src/cpu_map/arm_Neoverse-V1.xml
@@ -0,0 +1,7 @@
+<cpus>
+ <model name='Neoverse-V1'>
+ <vendor name='Ampere'/>
+ <pvr value='0xd40'/>
+ </model>
+</cpus>
+
diff --git a/src/cpu_map/arm_vendors.xml b/src/cpu_map/arm_vendors.xml
index 92d10565f4..3bbaf35ab7 100644
--- a/src/cpu_map/arm_vendors.xml
+++ b/src/cpu_map/arm_vendors.xml
@@ -13,4 +13,5 @@
<vendor name='Marvell' value='0x56'/>
<vendor name='Intel' value='0x69'/>
<vendor name='Phytium' value='0x70'/>
+ <vendor name='Ampere' value='0xc0'/>
</cpus>
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index d533a28865..01fa61f4a4 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -98,6 +98,11 @@
<include filename='arm_cortex-a57.xml'/>
<include filename='arm_cortex-a72.xml'/>
+ <!-- Ampere-based CPU models -->
+ <include filename='arm_Neoverse-N1.xml'/>
+ <include filename='arm_Neoverse-N2.xml'/>
+ <include filename='arm_Neoverse-V1.xml'/>
+
<!-- Qualcomm-based CPU models -->
<include filename='arm_Falkor.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 99264289e2..55c3703006 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -7,6 +7,9 @@ cpumap_data = [
'arm_FT-2000plus.xml',
'arm_features.xml',
'arm_Kunpeng-920.xml',
+ 'arm_Neoverse-N1.xml',
+ 'arm_Neoverse-N2.xml',
+ 'arm_Neoverse-V1.xml',
'arm_Tengyun-S2500.xml',
'arm_ThunderX299xx.xml',
'arm_vendors.xml',
--
2.31.1
2 years, 1 month
[libvirt PATCH] spec: Use consistent versioning for Obsoletes
by Jiri Denemark
rpmbuild is complaining it's not recommended to have unversioned
Obsoletes. On the other hand using dynamic version/release is a bit too
much as we know in which release a particular subpackage was removed.
Let's just use the corresponding version in both cases to be consistent
with all other Obsoletes in our spec file.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
libvirt.spec.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libvirt.spec.in b/libvirt.spec.in
index 654057bf57..f7d3931b6e 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -574,9 +574,9 @@ Requires: util-linux
Requires: /usr/bin/qemu-img
%endif
%if !%{with_storage_rbd}
-Obsoletes: libvirt-daemon-driver-storage-rbd < %{version}-%{release}
+Obsoletes: libvirt-daemon-driver-storage-rbd < 5.2.0
%endif
-Obsoletes: libvirt-daemon-driver-storage-sheepdog
+Obsoletes: libvirt-daemon-driver-storage-sheepdog < 8.8.0
%description daemon-driver-storage-core
The storage driver plugin for the libvirtd daemon, providing
--
2.37.3
2 years, 1 month
[libvirt PATCH 0/2] add systemd-rpm-macros build dependency
by Pavel Hrdina
Pavel Hrdina (2):
spec: add systemd-rpm-macros build dependency
ci: refresh generated files
ci/containers/almalinux-8.Dockerfile | 1 +
ci/containers/centos-stream-8.Dockerfile | 1 +
ci/containers/centos-stream-9.Dockerfile | 1 +
ci/containers/fedora-35.Dockerfile | 1 +
ci/containers/fedora-36-cross-mingw32.Dockerfile | 3 ++-
ci/containers/fedora-36-cross-mingw64.Dockerfile | 3 ++-
ci/containers/fedora-36.Dockerfile | 1 +
ci/containers/fedora-rawhide-cross-mingw32.Dockerfile | 3 ++-
ci/containers/fedora-rawhide-cross-mingw64.Dockerfile | 3 ++-
ci/containers/fedora-rawhide.Dockerfile | 1 +
ci/containers/opensuse-leap-153.Dockerfile | 1 +
ci/containers/opensuse-tumbleweed.Dockerfile | 1 +
libvirt.spec.in | 1 +
13 files changed, 17 insertions(+), 4 deletions(-)
--
2.37.3
2 years, 1 month
[PATCH 00/37] conf: Refactor virDomainNetDefParseXML
by Peter Krempa
After the partial refactor in fdd06824e3a618ca33752e0439bbd5b2d9da1b0d
the function was left in a halfway state between the old parser style
and new one.
Try to improve it a bit, although the result is still not ideal.
Peter Krempa (37):
conf: domain: Register automatic pointer freeing for
virDomainActualNetDef
conf: domain: Automatically free 'def' and 'actual' in
virDomainNetDefParseXML
conf: domain: Remove 'error' label in virDomainNetDefParseXML
virDomainNetDefParseXML: Remove unnecessary temporary variables
virDomainNetDefParseXML: Separate and localize parsing of
'backend/@vhost'
virDomainNetDefParseXML: Split out parsing of 'driver' subelement
virDomainNetDefParseXML: Use virXMLPropEnumDefault for parsing
'def->type'
virDomainNetIPInfoParseXML: Remove pointless automatic clearing of
'route' and 'ip'
virDomainNetIPInfoParseXML: Don't VIR_FREE and overwrite autofreed
'nodes'
virDomainNetIPInfoParseXML: Simplify cleanup
virDomainNetIPInfoParseXML: Don't force callers to set proper
'ctxt->node'
util: xml: Introduce virXMLPropUUID
util: xml: Adjust documentation of virXMLPropString
util: xml: Introduce virXMLPropStringRequired
virDomainNetDefParseXML: Convert parsing of 'source_node' to a
switch() statement
virDomainNetDefParseXML: Refactor parsing of data for
VIR_DOMAIN_NET_TYPE_NETWORK
util: xml: Introduce virXMLPropLongLong
virDomainNetDefParseXML: Refactor parsing of data for
VIR_DOMAIN_NET_TYPE_VDS
virDomainNetDefParseXML: Refactor parsing of data for
VIR_DOMAIN_NET_TYPE_INTERNAL
virDomainNetDefParseXML: Refactor parsing of data for
VIR_DOMAIN_NET_TYPE_BRIDGE
conf: domain: Convert 'mode' field of the 'direct' type of
virDomainNetDef to proper type
virDomainNetDefParseXML: Refactor parsing of data for
VIR_DOMAIN_NET_TYPE_DIRECT
virDomainNetDefParseXML: Extract network device model earlier
conf: domain: Move 'virDomainChrSourceReconnectDefParseXML'
virDomainNetDefParseXML: Refactor parsing of data for
VIR_DOMAIN_NET_TYPE_VHOSTUSER
virDomainNetDefParseXML: Refactor parsing of data for
VIR_DOMAIN_NET_TYPE_VDPA
util: xml: Introduce VIR_XPATH_NODE_AUTORESTORE_NAME
virDomainNetDefParseXML: Refactor parsing of data for
VIR_DOMAIN_NET_TYPE_UDP/MCAST/SERVER/CLIENT
virDomainNetDefParseXML: Refactor parsing of data for
VIR_DOMAIN_NET_TYPE_HOSTDEV
conf: domain: Move prue validation code from virDomainNetDefParseXML
to virDomainNetDefValidate
virDomainNetDefParseXML: Refactor parsing of <virtualport>
virDomainNetDef: Use virTristateBool for 'managed_tap' instead of int
virDomainNetDefParseXML: Refactor parsing of <target> subelement
virDomainNetDefParseXML: Refactor parsing of <filterref>
virDomainNetDefParseXML: Don't overload 'node' variable when parsing
<coalesce>
virDomainNetDefParseXML: Parse attributes of <mac> only when present
virDomainNetDefParseXML: Drop prehistoric error workaround
src/conf/domain_conf.c | 1118 +++++++++++++++---------------------
src/conf/domain_conf.h | 5 +-
src/conf/domain_validate.c | 34 ++
src/libvirt_private.syms | 3 +
src/util/virxml.c | 139 ++++-
src/util/virxml.h | 39 +-
6 files changed, 683 insertions(+), 655 deletions(-)
--
2.37.1
2 years, 1 month
[PATCH] qemu_monitor_json: remove unnecessary variable 'rc'
by Kristina Hanicova
Signed-off-by: Kristina Hanicova <khanicov(a)redhat.com>
---
src/qemu/qemu_monitor_json.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 70fba50e6c..5f7c1a8db9 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -8611,11 +8611,8 @@ qemuMonitorJSONQueryStats(qemuMonitor *mon,
qemuMonitorQueryStatsProvider *provider = providers->pdata[i];
const char *type_str = qemuMonitorQueryStatsProviderTypeToString(provider->type);
virBitmap *names = provider->names;
- int rc;
- rc = virJSONValueObjectAppendString(provider_obj, "provider", type_str);
-
- if (rc < 0)
+ if (virJSONValueObjectAppendString(provider_obj, "provider", type_str) < 0)
return NULL;
if (!virBitmapIsAllClear(names)) {
@@ -8629,9 +8626,7 @@ qemuMonitorJSONQueryStats(qemuMonitor *mon,
return NULL;
}
- rc = virJSONValueObjectAppend(provider_obj, "names", &provider_names);
-
- if (rc < 0)
+ if (virJSONValueObjectAppend(provider_obj, "names", &provider_names) < 0)
return NULL;
}
--
2.37.2
2 years, 1 month
[PATCH 0/2] RFC: Allow using custom XML validator
by Peter Krempa
Benefits described in patch 2/2 with an example of using 'jing' as
validator.
Peter Krempa (2):
util: xml: Introduce infrastructure to support custom XML validators
daemon: Introduce the possibility for users to register custom XML
validator
src/libvirt_private.syms | 1 +
src/remote/libvirtd.aug.in | 1 +
src/remote/libvirtd.conf.in | 21 +++++++
src/remote/remote_daemon.c | 3 +
src/remote/remote_daemon_config.c | 4 ++
src/remote/remote_daemon_config.h | 2 +
src/remote/test_libvirtd.aug.in | 1 +
src/util/virxml.c | 93 ++++++++++++++++++++++++++++++-
src/util/virxml.h | 3 +
9 files changed, 127 insertions(+), 2 deletions(-)
--
2.37.1
2 years, 1 month
[PATCH 0/7] Fix two bugs in XML schema
by Peter Krempa
Patches 1/7 and 6/7 outline the individual bugs.
Peter Krempa (7):
schema: nodedev: Fix schema attribute value for the 'vport_ops'
capability
nodedevschematest: Add example file for a HBA with 'vport_ops'
capability
qemudomainsnapshotxml2xmltest: Allow regenerating into non-existing
output file
schemas: Extract overrides for the domain element from 'domain.rng'
schemas: domaincommon: Extract contents of the 'domain' element
definition
schema: Add schema for '<inactiveDomain>' element used in the snapshot
definition
qemudomainsnapshotxml2xmltest: Add test case for a snapshot with
'inactiveDomain' element
docs/formatnode.rst | 2 +-
src/conf/schemas/domain.rng | 12 +-
src/conf/schemas/domaincommon.rng | 150 ++++++++++--------
src/conf/schemas/domainoverrides.rng | 16 ++
src/conf/schemas/domainsnapshot.rng | 5 +
src/conf/schemas/inactiveDomain.rng | 10 ++
src/conf/schemas/nodedev.rng | 2 +-
tests/nodedevschemadata/hba_vport_ops.xml | 18 +++
tests/nodedevxml2xmlout/hba_vport_ops.xml | 18 +++
tests/nodedevxml2xmltest.c | 1 +
.../memory-snapshot-inactivedomain.xml | 148 +++++++++++++++++
tests/qemudomainsnapshotxml2xmltest.c | 10 +-
12 files changed, 303 insertions(+), 89 deletions(-)
create mode 100644 src/conf/schemas/domainoverrides.rng
create mode 100644 src/conf/schemas/inactiveDomain.rng
create mode 100644 tests/nodedevschemadata/hba_vport_ops.xml
create mode 100644 tests/nodedevxml2xmlout/hba_vport_ops.xml
create mode 100644 tests/qemudomainsnapshotxml2xmlout/memory-snapshot-inactivedomain.xml
--
2.37.1
2 years, 1 month