[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