[libvirt] [PATCH v4 08/25] conf: new function virDomainPCIAddressReserveNextAddr()

Andrea Bolognani abologna at redhat.com
Tue Oct 18 14:24:35 UTC 2016


On Fri, 2016-10-14 at 15:54 -0400, Laine Stump wrote:
> There is an existing virDomainPCIAddressReserveNextSlot() which will
> reserve all functions of the next available PCI slot. One place in the
> qemu PCI address assignment code requires reserving a *single*
> function of the next available PCI slot. This patch modifies and
> renames virDomainPCIAddressReserveNextSlot() so that it can fulfill
> both the original purpose and the need to reserve a single function.
> 
> (This is being done so that the abovementioned code in qemu can have
> its "kind of open coded" solution replaced with a call to this new
> function).
> ---
> 
> Changes: Fixed indentation and comments, and removed unnecessary
>          setting of lastaddr.function and lastaddr.multi.
> 
>  src/conf/domain_addr.c   | 49 +++++++++++++++++++++++++++++++++++++++++++-----
>  src/conf/domain_addr.h   |  7 +++++++
>  src/libvirt_private.syms |  1 +
>  3 files changed, 52 insertions(+), 5 deletions(-)
> 
> diff --git a/src/conf/domain_addr.c b/src/conf/domain_addr.c
> index 080d882..1710220 100644
> --- a/src/conf/domain_addr.c
> +++ b/src/conf/domain_addr.c
> @@ -691,29 +691,68 @@ virDomainPCIAddressGetNextSlot(virDomainPCIAddressSetPtr addrs,
>      return 0;
>  }
>  
> +
> +/**
> + * virDomainPCIAddressReserveNextAddr:
> + *
> + * find the next *completely unreserved* slot with compatible
> + * connection @flags, mark either one function or the entire
> + * slot as in-use (according to @function and @reserveEntireSlot),
> + * and set @dev->addr.pci with this newly reserved address.

This looks much much better...

> + * @addrs:     a set of PCI addresses.
> + *
> + * @dev:       virDomainDeviceInfo that should get the new address.
> + *
> + * @flags:     CONNECT_TYPE flags for the device that needs an address.
> + *
> + * @function:  which function on the slot to mark as reserved
> + *             (if @reserveEntireSlot is false)
> + *
> + * @reserveEntireSlot: true to reserve all functions on the new slot,
> + *              false to reserve just @function

... but these are still weird. Please take a look at
include/libvirt/libvirt-domain.h to see what I mean.

Interestingly, in that file the arguments are documented
*before* describing the function itself. We should probably
stick to that order here as well.

> + *

Extra line here, didn't notice it the first time around.

> + *
> + * returns 0 on success, or -1 on failure.
> + */
>  int
> -virDomainPCIAddressReserveNextSlot(virDomainPCIAddressSetPtr addrs,
> +virDomainPCIAddressReserveNextAddr(virDomainPCIAddressSetPtr addrs,

ACK after you tweak indentation for the comment :)

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list