[libvirt] [PATCH 3/6] pci: Introduce virPCIStubDriver enumeration

Michal Privoznik mprivozn at redhat.com
Thu Dec 17 16:28:56 UTC 2015


On 17.12.2015 16:23, Andrea Bolognani wrote:
> This replaces the virPCIKnownStubs string array that was used
> internally for stub driver validation.
> 
> Advantages:
> 
>   * possible values are well-defined
>   * typos in driver names will be detected at compile time
>   * avoids having several copies of the same string around
>   * no error checking required when setting / getting value
> 
> The names used mirror those in the
> virDomainHostdevSubsysPCIBackendType enumeration.


> diff --git a/src/util/virpci.h b/src/util/virpci.h
> index e628ab8..506a68c 100644
> --- a/src/util/virpci.h
> +++ b/src/util/virpci.h
> @@ -43,6 +43,15 @@ struct _virPCIDeviceAddress {
>  };
>  
>  typedef enum {
> +    VIR_PCI_STUB_DRIVER_XEN = 0,
> +    VIR_PCI_STUB_DRIVER_KVM,
> +    VIR_PCI_STUB_DRIVER_VFIO,
> +    VIR_PCI_STUB_DRIVER_LAST
> +} virPCIStubDriver;

Is there any specific reason to explicitly set _XEN = 0? I mean, by
default any new PCI device that we create in memory (virPCIDeviceNew())
will have _XEN as stub driver until set by virPCIDeviceSetStubDriver().
I'm not saying it's wrong, just asking.

For instance, if we reserve zero for a special case when stub driver
hasn't been set, we can throw an error and detect a bug in our code.

> +
> +VIR_ENUM_DECL(virPCIStubDriver);
> +
> +typedef enum {
>      VIR_PCIE_LINK_SPEED_NA = 0,
>      VIR_PCIE_LINK_SPEED_25,
>      VIR_PCIE_LINK_SPEED_5,

Michal




More information about the libvir-list mailing list