[libvirt] [RFC 1/6] conf: Get rid of virDomainCapsDevice
John Ferlan
jferlan at redhat.com
Wed Mar 30 17:19:38 UTC 2016
On 03/21/2016 01:28 PM, Andrea Bolognani wrote:
> The struct contains a single boolean field which can be
> applied to domain capabilities that do not represent device
> availability.
>
> Instead of trying to come up with a more generic name just
> get rid of the struct altogether.
> ---
> src/conf/domain_capabilities.c | 6 +++---
> src/conf/domain_capabilities.h | 14 ++++----------
> src/qemu/qemu_capabilities.c | 8 ++++----
> tests/domaincapstest.c | 8 ++++----
> 4 files changed, 15 insertions(+), 21 deletions(-)
>
The construct was added as part of commit id '614581f32' - not sure if
Michal felt more bool's were going to be added to virDomainCapsDevice.
I see this affects patch 4 - I think it would be a good idea to see if
Michal had "other designs" in mind before changing this. That could be
separate too...
John
> diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c
> index 0e32f52..466c0c6 100644
> --- a/src/conf/domain_capabilities.c
> +++ b/src/conf/domain_capabilities.c
> @@ -187,9 +187,9 @@ virDomainCapsStringValuesFormat(virBufferPtr buf,
> #define FORMAT_PROLOGUE(item) \
> do { \
> virBufferAsprintf(buf, "<" #item " supported='%s'%s\n", \
> - item->device.supported ? "yes" : "no", \
> - item->device.supported ? ">" : "/>"); \
> - if (!item->device.supported) \
> + item->supported ? "yes" : "no", \
> + item->supported ? ">" : "/>"); \
> + if (!item->supported) \
> return; \
> virBufferAdjustIndent(buf, 2); \
> } while (0)
> diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h
> index 597ac75..3eacb35 100644
> --- a/src/conf/domain_capabilities.h
> +++ b/src/conf/domain_capabilities.h
> @@ -44,16 +44,10 @@ struct _virDomainCapsStringValues {
> size_t nvalues; /* number of strings */
> };
>
> -typedef struct _virDomainCapsDevice virDomainCapsDevice;
> -typedef virDomainCapsDevice *virDomainCapsDevicePtr;
> -struct _virDomainCapsDevice {
> - bool supported; /* true if <devtype> is supported by hypervisor */
> -};
> -
> typedef struct _virDomainCapsLoader virDomainCapsLoader;
> typedef virDomainCapsLoader *virDomainCapsLoaderPtr;
> struct _virDomainCapsLoader {
> - virDomainCapsDevice device;
> + bool supported;
> virDomainCapsStringValues values; /* Info about values for the element */
> virDomainCapsEnum type; /* Info about virDomainLoader */
> virDomainCapsEnum readonly; /* Info about readonly:virTristateBool */
> @@ -62,14 +56,14 @@ struct _virDomainCapsLoader {
> typedef struct _virDomainCapsOS virDomainCapsOS;
> typedef virDomainCapsOS *virDomainCapsOSPtr;
> struct _virDomainCapsOS {
> - virDomainCapsDevice device;
> + bool supported;
> virDomainCapsLoader loader; /* Info about virDomainLoaderDef */
> };
>
> typedef struct _virDomainCapsDeviceDisk virDomainCapsDeviceDisk;
> typedef virDomainCapsDeviceDisk *virDomainCapsDeviceDiskPtr;
> struct _virDomainCapsDeviceDisk {
> - virDomainCapsDevice device;
> + bool supported;
> virDomainCapsEnum diskDevice; /* Info about virDomainDiskDevice enum values */
> virDomainCapsEnum bus; /* Info about virDomainDiskBus enum values */
> /* add new fields here */
> @@ -78,7 +72,7 @@ struct _virDomainCapsDeviceDisk {
> typedef struct _virDomainCapsDeviceHostdev virDomainCapsDeviceHostdev;
> typedef virDomainCapsDeviceHostdev *virDomainCapsDeviceHostdevPtr;
> struct _virDomainCapsDeviceHostdev {
> - virDomainCapsDevice device;
> + bool supported;
> virDomainCapsEnum mode; /* Info about virDomainHostdevMode */
> virDomainCapsEnum startupPolicy; /* Info about virDomainStartupPolicy */
> virDomainCapsEnum subsysType; /* Info about virDomainHostdevSubsysType */
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index b223837..4b1e750 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -3909,7 +3909,7 @@ virQEMUCapsFillDomainLoaderCaps(virQEMUCapsPtr qemuCaps,
> {
> size_t i;
>
> - capsLoader->device.supported = true;
> + capsLoader->supported = true;
>
> if (VIR_ALLOC_N(capsLoader->values.values, nloader) < 0)
> return -1;
> @@ -3951,7 +3951,7 @@ virQEMUCapsFillDomainOSCaps(virQEMUCapsPtr qemuCaps,
> {
> virDomainCapsLoaderPtr capsLoader = &os->loader;
>
> - os->device.supported = true;
> + os->supported = true;
> if (virQEMUCapsFillDomainLoaderCaps(qemuCaps, capsLoader,
> loader, nloader) < 0)
> return -1;
> @@ -3964,7 +3964,7 @@ virQEMUCapsFillDomainDeviceDiskCaps(virQEMUCapsPtr qemuCaps,
> const char *machine,
> virDomainCapsDeviceDiskPtr disk)
> {
> - disk->device.supported = true;
> + disk->supported = true;
> /* QEMU supports all of these */
> VIR_DOMAIN_CAPS_ENUM_SET(disk->diskDevice,
> VIR_DOMAIN_DISK_DEVICE_DISK,
> @@ -4000,7 +4000,7 @@ virQEMUCapsFillDomainDeviceHostdevCaps(virQEMUCapsPtr qemuCaps,
> bool supportsPassthroughKVM = qemuHostdevHostSupportsPassthroughLegacy();
> bool supportsPassthroughVFIO = qemuHostdevHostSupportsPassthroughVFIO();
>
> - hostdev->device.supported = true;
> + hostdev->supported = true;
> /* VIR_DOMAIN_HOSTDEV_MODE_CAPABILITIES is for containers only */
> VIR_DOMAIN_CAPS_ENUM_SET(hostdev->mode,
> VIR_DOMAIN_HOSTDEV_MODE_SUBSYS);
> diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c
> index ecefdb9..b6f6ac8 100644
> --- a/tests/domaincapstest.c
> +++ b/tests/domaincapstest.c
> @@ -65,9 +65,9 @@ fillAll(virDomainCapsPtr domCaps,
> virDomainCapsDeviceHostdevPtr hostdev = &domCaps->hostdev;
> domCaps->maxvcpus = 255;
>
> - os->device.supported = true;
> + os->supported = true;
>
> - loader->device.supported = true;
> + loader->supported = true;
> SET_ALL_BITS(loader->type);
> SET_ALL_BITS(loader->readonly);
> if (fillStringValues(&loader->values,
> @@ -76,11 +76,11 @@ fillAll(virDomainCapsPtr domCaps,
> NULL) < 0)
> return -1;
>
> - disk->device.supported = true;
> + disk->supported = true;
> SET_ALL_BITS(disk->diskDevice);
> SET_ALL_BITS(disk->bus);
>
> - hostdev->device.supported = true;
> + hostdev->supported = true;
> SET_ALL_BITS(hostdev->mode);
> SET_ALL_BITS(hostdev->startupPolicy);
> SET_ALL_BITS(hostdev->subsysType);
>
More information about the libvir-list
mailing list