[libvirt] [PATCH v5] bhyve: implement PCI address allocation

Ján Tomko jtomko at redhat.com
Mon May 26 12:16:45 UTC 2014


On 05/17/2014 07:49 PM, Roman Bogorodskiy wrote:
> Automatically allocate PCI addresses for devices instead
> of hardcoding them in the driver code. The current
> allocation schema is to dedicate an entire slot for each devices.
> 
> Also, allow having arbitrary number of devices.
> ---
>  po/POTFILES.in                                     |   1 +
>  src/Makefile.am                                    |   4 +
>  src/bhyve/bhyve_command.c                          | 112 +++++++------
>  src/bhyve/bhyve_device.c                           | 174 +++++++++++++++++++++
>  src/bhyve/bhyve_device.h                           |  38 +++++
>  src/bhyve/bhyve_domain.c                           |  75 +++++++++
>  src/bhyve/bhyve_domain.h                           |  39 +++++
>  src/bhyve/bhyve_driver.c                           |  12 +-
>  .../bhyvexml2argvdata/bhyvexml2argv-acpiapic.args  |   2 +-
>  tests/bhyvexml2argvdata/bhyvexml2argv-acpiapic.xml |   2 +
>  tests/bhyvexml2argvdata/bhyvexml2argv-base.args    |   2 +-
>  tests/bhyvexml2argvdata/bhyvexml2argv-base.xml     |   2 +
>  tests/bhyvexml2argvdata/bhyvexml2argv-console.args |   4 +-
>  tests/bhyvexml2argvdata/bhyvexml2argv-console.xml  |   2 +
>  .../bhyvexml2argv-disk-virtio.args                 |   2 +-
>  .../bhyvexml2argv-disk-virtio.xml                  |   2 +
>  tests/bhyvexml2argvdata/bhyvexml2argv-macaddr.args |   2 +-
>  tests/bhyvexml2argvdata/bhyvexml2argv-macaddr.xml  |   2 +
>  tests/bhyvexml2argvdata/bhyvexml2argv-serial.args  |   4 +-
>  tests/bhyvexml2argvdata/bhyvexml2argv-serial.xml   |   2 +
>  20 files changed, 416 insertions(+), 67 deletions(-)
>  create mode 100644 src/bhyve/bhyve_device.c
>  create mode 100644 src/bhyve/bhyve_device.h
>  create mode 100644 src/bhyve/bhyve_domain.c
>  create mode 100644 src/bhyve/bhyve_domain.h
> 

ACK

> --- a/src/bhyve/bhyve_command.c
> +++ b/src/bhyve/bhyve_command.c
> @@ -39,58 +39,48 @@
>  VIR_LOG_INIT("bhyve.bhyve_command");
>  
>  static int
> -bhyveBuildNetArgStr(const virDomainDef *def, virCommandPtr cmd, bool dryRun)
> +bhyveBuildNetArgStr(const virDomainDef *def,
> +                    virDomainNetDefPtr net,
> +                    virCommandPtr cmd,
> +                    bool dryRun)
>  {

> +    char *brname = NULL;
> +    int actualType = virDomainNetGetActualType(net);
>  
> -    if (def->nnets != 1) {
> -        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> -                       _("domain should have one and only one net defined"));

I don't see this check re-added anywhere. Is it okay to have a domain with no
net now?

> +    if (actualType == VIR_DOMAIN_NET_TYPE_BRIDGE) {
> +        if (VIR_STRDUP(brname, virDomainNetGetActualBridgeName(net)) < 0)
> +            return -1;
> +    } else {
> +        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> +                       _("Network type %d is not supported"),
> +                       virDomainNetGetActualType(net));
>          return -1;
>      }
>  

Jan


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140526/85c8f483/attachment-0001.sig>


More information about the libvir-list mailing list