libvirt/src/xen
Eric Blake d24677090f maint: avoid 'const fooPtr' in domain_conf
'const fooPtr' is the same as 'foo * const' (the pointer won't
change, but it's contents can).  But in general, if an interface
is trying to be const-correct, it should be using 'const foo *'
(the pointer is to data that can't be changed).

Fix up offenders in src/conf/domain_conf, and their fallout.

Several things to note: virObjectLock() requires a non-const
argument; if this were C++, we could treat the locking field
as 'mutable' and allow locking an otherwise 'const' object, but
that is a more invasive change, so I instead dropped attempts
to be const-correct on domain lookup.  virXMLPropString and
friends require a non-const xmlNodePtr - this is because libxml2
is not a const-correct library.  We could make the src/util/virxml
wrappers cast away const, but I figured it was easier to not
try to mark xmlNodePtr as const.  Finally, virDomainDeviceDefCopy
was a rather hard conversion - it calls virDomainDeviceDefPostParse,
which in turn in the xen driver was actually modifying the domain
outside of the current device being visited.  We should not be
adding a device on the first per-device callback, but waiting until
after all per-device callbacks are complete.

* src/conf/domain_conf.h (virDomainObjListFindByID)
(virDomainObjListFindByUUID, virDomainObjListFindByName)
(virDomainObjAssignDef, virDomainObjListAdd): Drop attempt at
const.
(virDomainDeviceDefCopy): Use intended type.
(virDomainDeviceDefParse, virDomainDeviceDefPostParseCallback)
(virDomainVideoDefaultType, virDomainVideoDefaultRAM)
(virDomainChrGetDomainPtrs): Make const-correct.
* src/conf/domain_conf.c (virDomainObjListFindByID)
(virDomainObjListFindByUUID, virDomainObjListFindByName)
(virDomainDeviceDefCopy, virDomainObjListAdd)
(virDomainObjAssignDef, virDomainHostdevSubsysUsbDefParseXML)
(virDomainHostdevSubsysPciOrigStatesDefParseXML)
(virDomainHostdevSubsysPciDefParseXML)
(virDomainHostdevSubsysScsiDefParseXML)
(virDomainControllerModelTypeFromString)
(virDomainTPMDefParseXML, virDomainTimerDefParseXML)
(virDomainSoundCodecDefParseXML, virDomainSoundDefParseXML)
(virDomainWatchdogDefParseXML, virDomainRNGDefParseXML)
(virDomainMemballoonDefParseXML, virDomainNVRAMDefParseXML)
(virSysinfoParseXML, virDomainVideoAccelDefParseXML)
(virDomainVideoDefParseXML, virDomainHostdevDefParseXML)
(virDomainRedirdevDefParseXML)
(virDomainRedirFilterUsbDevDefParseXML)
(virDomainRedirFilterDefParseXML, virDomainIdMapEntrySort)
(virDomainIdmapDefParseXML, virDomainVcpuPinDefParseXML)
(virDiskNameToBusDeviceIndex, virDomainDeviceDefCopy)
(virDomainVideoDefaultType, virDomainHostdevAssignAddress)
(virDomainDeviceDefPostParseInternal, virDomainDeviceDefPostParse)
(virDomainChrGetDomainPtrs, virDomainControllerSCSINextUnit)
(virDomainSCSIDriveAddressIsUsed)
(virDomainDriveAddressIsUsedByDisk)
(virDomainDriveAddressIsUsedByHostdev): Fix fallout.
* src/openvz/openvz_driver.c (openvzDomainDeviceDefPostParse):
Likewise.
* src/libxl/libxl_domain.c (libxlDomainDeviceDefPostParse):
Likewise.
* src/qemu/qemu_domain.c (qemuDomainDeviceDefPostParse)
(qemuDomainDefaultNetModel): Likewise.
* src/lxc/lxc_domain.c (virLXCDomainDeviceDefPostParse):
Likewise.
* src/uml/uml_driver.c (umlDomainDeviceDefPostParse): Likewise.
* src/xen/xen_driver.c (xenDomainDeviceDefPostParse): Split...
(xenDomainDefPostParse): ...since per-device callback is not the
time to be adding a device.

Signed-off-by: Eric Blake <eblake@redhat.com>
2013-10-14 14:34:38 -06:00
..
block_stats.c Convert 'int i' to 'size_t i' in src/{xen,xenapi,xenxs} files 2013-07-10 17:40:13 +01:00
block_stats.h Convert Xen domain stats/peek driver methods to use virDomainDefPtr 2013-05-21 16:11:39 +01:00
xen_driver.c maint: avoid 'const fooPtr' in domain_conf 2013-10-14 14:34:38 -06:00
xen_driver.h xen: Use internal interfaces in xenDomainUsedCpus 2013-08-06 11:53:43 -06:00
xen_hypervisor.c Don't call regfree() if regcomp() fails 2013-09-05 10:53:24 -06:00
xen_hypervisor.h Convert Xen domain stats/peek driver methods to use virDomainDefPtr 2013-05-21 16:11:39 +01:00
xen_inotify.c Convert 'int i' to 'size_t i' in src/{xen,xenapi,xenxs} files 2013-07-10 17:40:13 +01:00
xen_inotify.h Simplify opening of Xen drivers 2013-05-09 13:16:19 +01:00
xend_internal.c Fix handling of OOM when getting Xen dom ID 2013-09-25 18:12:08 +01:00
xend_internal.h Convert Xen domain core dump driver methods to use virDomainDefPtr 2013-05-21 16:11:39 +01:00
xm_internal.c Convert 'int i' to 'size_t i' in src/{xen,xenapi,xenxs} files 2013-07-10 17:40:13 +01:00
xm_internal.h Convert Xen domain stats/peek driver methods to use virDomainDefPtr 2013-05-21 16:11:39 +01:00
xs_internal.c Convert 'int i' to 'size_t i' in src/{xen,xenapi,xenxs} files 2013-07-10 17:40:13 +01:00
xs_internal.h Simplify the Xen domain get info/state driver methods 2013-05-09 13:16:20 +01:00